Example #1
0
def map_nhd(grid):
    """
    #nhd_proj4 = '+init=epsg:4269'
    nhd_proj4 = '+proj=latlong +ellps=GRS80 +datum=NAD83 +no_defs'

    if 1:
        imgs = [render_shapefile(('nhdflowline', 'false'),
                                 nhd_proj4, grid, get_mss('nhd_flowline')),
                render_shapefile(('nhdwaterbody', 'true'),
                                 nhd_proj4, grid, get_mss('nhd_waterbody')),
                render_shapefile(('nhdarea', 'true'),
                                 nhd_proj4, grid, get_mss('nhd_area'))]


    img = asum(imgs[0], imgs[2], 1.0)
    img = asum(img, imgs[1], 1.0)
    """

    img = render_layer(workdir, 'features', grid, ['nhd_flowline', 'nhd_waterbody', 'nhd_area', 'osm_line'])
    
    #img = 1 - N.prod([1.0 - im for im in imgs], axis=0)
    #img = N.max(imgs, axis=0)
    #img = imgs[0]

    # osm roads are imported in 900913
    if 0:
        osm = render_layer('features', grid, ['osm_line'])

    if 0:
        osm = render_shapefile(('ca_line',0),
                               gym.proj4_srs, grid,
                               get_mss('osm_label'))

    if 0:
        osm = render_shapefile(('ca_point',0), gym.proj4_srs,
                               grid, get_mss('osm_point'))

    #glumpy_loop(img+osm)
    #return img
    #return osm
    #return 0.5 * (osm + img)
    #return asum(img, osm)
    return img
Example #2
0
def doit(workdir, grid):
    extract_all(workdir, grid)

    # create surface 
    lcf = '%s/mrlc' % (workdir,)
    if os.path.exists(lcf + '.tif'):
        sfcinfo, surface = load_mrlc(lcf + '.tif')
    else:
        sfcinfo, surface = load_quarters(lcf)
    #print 'SFCI', sfcinfo

    # get the hydrography
    #water = map_nhd(sfcinfo.grid)
    #print 'WWWWS', water.shape
    #glumpy_loop(water)

    demf = '%s/dem' % (workdir,)
    demtif = demf + '.tif'
    if os.path.exists(demtif):
        deminfo, demlayers = load_raster(demtif)
    else:
        deminfo, demlayers = load_quarters(lcf)
    dem = demlayers[0]
    # XXX handle missing values

    #glumpy_loop(surface)

    shaded = reliefshade(deminfo, dem, surface)

    #glumpy_loop(shaded)

    # test of grid tiling
    #for (z,ix,iy) in sfcinfo.grid.itertiles():
    #    print 'TILE %d %d %d' % (z, ix, iy)
    #print 'TIFF_HISTO', N.histogram(img, new=True)

    # if we don't have the DEM in a file (because we just composited it from quadrants),
    #  save it to a file so it can be fed to gdal_contour
    if not os.path.exists(demtif):
        save_raster(deminfo, demtif, dem)

    if not os.path.isdir('%s/contour' % workdir):
        contour_find(demtif, '%s/contour' % workdir)

    if not os.path.isdir('%s/contourft' % (workdir,)):
        ContourTweaker().filter('%s/contour' % (workdir,), '%s/contourft' % (workdir,))

    feats = render_layer(workdir, 'features', grid, ['nhd_flowline', 'nhd_waterbody', 'nhd_area', 'osm_line', 'contours'])

    fills = render_layer(workdir, 'fills', grid, ['contours', 'nhd_flowline', 'nhd_waterbody', 'nhd_area', 'osm_line'])

    labels = render_layer(workdir, 'labels', grid, ['contours', 'nhd_flowline', 'nhd_waterbody', 'nhd_area', 'osm_line'])

    # add contour labels and features
    img = asum(shaded, halo_mask(feats, labels))
    img = asum(img, fills)
    img = asum(img, labels)

    # build half-resolution versions for next zoom level
    #if not os.path.isdir('%s/quarter' % (workdir,)):
    #    os.mkdir('%s/quarter' % (workdir,))
    # XXX doesn't do anything right now
    parentgrid = sfcinfo.grid

    # XXX need to figure these out based on ix%2, iy%2 at some zoom?
    is_east = 0
    is_north = 0

    quadrant = [['sw', 'se'], ['nw', 'ne']][is_north][is_east]

    mrlcdir = request_workdir(parentgrid, 'mrlc')
    build_quarter('%s/%s.tif' % (mrlcdir,quadrant), sfcinfo, surface)

    demdir = request_workdir(parentgrid, 'dem')
    build_quarter('%s/%s.tif' % (demdir,quadrant), deminfo, dem)

    return img