def rasterToCSV(rasterPath, outputCSVPath): print "Writing raster {0} to {1}".format(os.path.basename(rasterPath), outputCSVPath) raster = Raster(rasterPath) npArr = raster.array # Retrieve and return the extent extent = {} extent['Top'] = raster.top extent['Left'] = raster.left extent['Right'] = raster.getRight() extent['Bottom'] = raster.getBottom() writer = csv.writer(open(outputCSVPath, 'wb')) header = ['x', 'y', 'value'] writer.writerow(header) for i, iVal in enumerate(npArr): for j, jVal in enumerate(iVal): if not np.ma.is_masked(jVal): x = raster.left + (j * raster.cellWidth) + (raster.cellWidth / 2) y = raster.top + (i * raster.cellHeight) + (raster.cellHeight / 2) writer.writerow([x, y, raster.array[i][j]]) return extent
def getDEMExtents(projects): outerExtent = {'Top': None, 'Left': None, 'Right': None, 'Bottom': None} extents = {} for proj in projects: dempath = proj['project'].getpath('DEM') vid = proj['visit'] dem = Raster(dempath) extents[vid] = { 'Top': dem.top, 'Left': dem.left, 'Right': dem.getRight(), 'Bottom': dem.getBottom() } if outerExtent['Top']: outerExtent['Top'] = max(dem.top, outerExtent['Top']) else: outerExtent['Top'] = dem.top if outerExtent['Left']: outerExtent['Left'] = min(dem.left, outerExtent['Left']) else: outerExtent['Left'] = dem.left if outerExtent['Right']: outerExtent['Right'] = max(dem.getRight(), outerExtent['Right']) else: outerExtent['Right'] = dem.getRight() if outerExtent['Bottom']: outerExtent['Bottom'] = min(dem.getBottom(), outerExtent['Bottom']) else: outerExtent['Bottom'] = dem.getBottom() extents['OuterExtent'] = copy.deepcopy(outerExtent) return extents