Mais

GDAL em C ++: valores raster errados após o corte do conjunto de dados geoTiff

GDAL em C ++: valores raster errados após o corte do conjunto de dados geoTiff


Estou tentando transferir um subconjunto (caixa (0,0) - (300,300)) de um geotiff pancromático para um novo arquivo. Embora a georreferência e o conjunto estejam sendo transferidos corretamente, os valores raster parecem errados.

Carregando os arquivos raster no qGIS, forneço os valores .tif originais 7614-15959 e os valores .tif 0-14530 resultantes.

Só para esclarecer: não tenho outros problemas (com projeção, georreferenciamento ou bordas do resultado da colheita).

(os conjuntos de dados são GDALDataset e as bandas são GDALRasterBand)

/ * GET PANCHROMATIC BAND * / band_pan = dataset_pan-> GetRasterBand (1); / * OBTER IMAGEM / BAND DATATYPE * / bufDataType = band_pan-> GetRasterDataType (); / * CRIAR NOVA IMAGEM COM O MESMO TIPO DE DADOS * / char ** cropOptions = NULL; dataset_crop = poDriver-> Criar (fname_crop, 512,512,1, bufDataType, cropOptions); / * TRANSFER GEOREFERENCE INFO * / double adfGeoTransform [6]; dataset_pan-> GetGeoTransform (adfGeoTransform) dataset_crop-> SetGeoTransform (adfGeoTransform); dataset_crop-> SetProjection (dataset_pan-> GetProjectionRef ()) / * READ IMAGE SUBSET * / band_pan-> RasterIO (GF_Read, 0,0,300,300, buffer, bufsizeX, bufsizeY, bufDataType, 0,0); / * OBTER NOVA BANDA DE IMAGEM * / band_out = dataset_crop-> GetRasterBand (1); / * ESCREVER SUBSET NA NOVA IMAGEM * / band_out-> RasterIO (GF_Write, 0,0,300,300, buffer, bufsizeX, bufsizeY, bufDataType, 0,0);

Estou esquecendo de algo?


Após tentativa e erro, usando a ajuda de @RobSkelly @BradHards, o problema parece ter sido o tamanho do bufs que usei no RasteRIO, que deveria ser o MESMO do tamanho da caixa de corte.

A função era dimensionar alguns pixels para ajustar o tamanho do corte ao tamanho do bufs, resultando em mudanças nos valores.


Assista o vídeo: Como extrair DADOS DE ELEVAÇÃO de um RASTER a partir de um SHAPEFILE Zona Statistics as Table