[gdal-dev] Re: Incorrect blank raster example in the FAQ?

Markus Reinhold markus.reinhold at uni-jena.de
Mon Oct 5 11:39:43 EDT 2009


Hej Simon,

> Instead of:
> 
> raster_transform = [src_extent[0], px, 0.0, src_extent[3], 0.0, -px]
> 
> I used:
> 
> x_scale = (src_extent[1] - src_extent[0]) / tiff_width
> y_scale = (src_extent[3] - src_extent[2]) / tiff_height
> raster_transform = [src_extent[0], x_scale, 0.0, src_extent[3], 0.0, -y_scale]
> 
> I'm not using the px variable at all.

There's a note on the given FAQ page <http://tinyurl.com/y9qmxsq> 
stating that a user should adjust the px variable to meet her desired 
raster resolution and dimensions. That's exactly what you've done with 
your calculations above. You've set the desired height and width of your 
result (somewhere) beforehand and calculated the corresponding raster 
resolution according to the spatial extent of the input shapefile. That 
is a fair solution, even though you may end up with a raster dataset not 
having square pixels. Which is fine, but not very common.
Calculating the size of the dataset using the desired pixel size is IMHO 
a much more frequently used concept. It could look like the following 
snippet:

# setting pixel resolution
px = 0.5

# calculating raster size from extent and desired pixel size
# using math.ceil to make it a little bit bigger than actually necessary
# equations are just transformed versions of your ones
tiff_width = int(math.ceil(abs(src_extent[0] - src_extent[1]) / px))
tiff_height = int(math.ceil(abs(src_extent[3] - src_extent[2]) / px))

# creating new raster layer
raster = gdal.GetDriverByName('GTiff')
dst_ds = raster.Create(tiff, tiff_width, tiff_height, 1, gdal.GDT_Byte)

# creating raster geo transform based on upper left corner and desired pixel
resolution
# now using a consistent pixel resolution
raster_transform = [src_extent[0], px, 0.0, src_extent[3], 0.0, - px]

I hope this will help to answer your question.
Regards,
Markus

-- 

********************************************************
Dipl.-Kartograph Markus Reinhold

Chair of Geoinformatics, Geohydrology and Modeling
Friedrich-Schiller-University Jena
Löbdergraben 32
D - 07743 Jena
Germany

Phone.: (+49)(0)3641 / 9 488 65
E-Mail: markus.reinhold at uni-jena.de
********************************************************



More information about the gdal-dev mailing list