Skip to content

Instantly share code, notes, and snippets.

@debboutr
Created October 12, 2017 20:10
Show Gist options
  • Save debboutr/f65e14d00b994aff8e7260b87d7b6190 to your computer and use it in GitHub Desktop.
Save debboutr/f65e14d00b994aff8e7260b87d7b6190 to your computer and use it in GitHub Desktop.
Make raster from dbf of shapefile
# create raster from dbf of shapefile
# this works only if dbf is set up reading
# left to right across rows and top down
from osgeo import ogr, gdal
from collections import OrderedDict
from StreamCat_functions import dbf2DF
shp = 'shapes.shp'
att = 'TD_N'
tbl = dbf2DF(shp.split('.')[0] + '.dbf')
meta = OrderedDict()
meta['ncols'] = 459
meta['nrows'] = 299
meta['xllcorner'] = -2556000
meta['yllcorner'] = -1728000
meta['cellsize'] = 12000
meta['nodata_value'] = -999.000000
f = open('out.asc','w')
for m in meta:
f.write(m + ' ' + str(meta[m]) + '\n')
start = 0
for i in range(meta['nrows']):
stop = start + meta['ncols']
for d in tbl[att][start:stop].tolist():
f.write(str(d) + ' ')
f.write('\n')
start = stop
f.close()
driver = ogr.GetDriverByName('ESRI Shapefile')
dataset = driver.Open(shp)
layer = dataset.GetLayer()
spatialRef = layer.GetSpatialRef()
ds_in = gdal.Open('out.asc')
drv = gdal.GetDriverByName('GTiff')
ds_out = drv.CreateCopy('out.tif', ds_in)
ds_out.SetProjection(spatialRef.ExportToWkt())
ds_in = None
ds_out = None
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment