다각형으로 만들어진 소스 레이어를 래스터 화하려고합니다. "NoData_value"에 할당 된 값에 관계없이 배열의 결과는 항상 0입니다. python 3.4를 사용하고 있습니다. 아무도 나를 이해할 수 있도록 도와 줄 수 있습니까?Gdal_rasterize nodata_value가 작동하지 않습니다.
source_srs = source_layer.GetSpatialRef()
x_min, x_max, y_min, y_max = source_layer.GetExtent()
# parameters of output file
xSize = math.ceil((x_max - x_min)/pixel_size) # number of pixels in the x direction given pixel_size, rounded up to the nearest pixel
ySize = math.ceil((y_max - y_min)/pixel_size) # number of pixels in the y direction given pixel_size, rounded up to the nearest pixel
x_res = int((x_max - x_min)/xSize) # size of pixel in meters rounded to fit bbox
y_res = int((y_max - y_min)/ySize) # size of pixel in meters rounded to fit bbox
NoData_value = -9999
# Create output dataset as memory
target_ds = gdal.GetDriverByName('MEM').Create('', xSize, ySize, gdal.GDT_Byte)
target_ds.SetGeoTransform((x_min, x_res, 0, y_max, 0, -y_res))
wkt_projection = source_srs.ExportToWkt()
target_ds.SetProjection(wkt_projection)
band = target_ds.GetRasterBand(1)
band.SetNoDataValue(NoData_value)
# rasterize
gdal.RasterizeLayer(target_ds, [1], source_layer, options=["ATTRIBUTE=expo" ])
# Read as numpy array
array = band.ReadAsArray()
대단히 감사합니다. 그게 다 해결 :) – Marianne