Пример #1
0
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
Пример #2
0
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