def grass_read_vect(vect): """ Read a GRASS GIS vector map into a Geopandas GeoDataFrame Occurs via an intermediate tempfile Parameters ---------- vect : str Name of GRASS GIS vector map Returns ------- geopandas.GeoDataFrame """ try: import geopandas as gpd except ImportError: gs.fatal("Geopandas python package is required") temp_out = ".".join([tempfile.NamedTemporaryFile().name, "gpkg"]) gvect.out_ogr(input=vect, output=temp_out, format="GPKG") return gpd.read_file(temp_out)
for i, reach_no in enumerate(reaches): # make the directory for this reach this_dir = DataDirectory + 'Upper_Miss_reach' + str(reach_no) + '/' try: os.mkdir(this_dir) except: pass # set the region g.region(n=str(n[i]), s=str(s[i]), e=str(e[i]), w=str(w[i]), flags='p') # now output the ENVI bil file r.out_gdal(input="Upper_Miss_filled", format="ENVI", type="Float32", nodata=-9999, output=this_dir + 'Upper_Miss_reach' + str(reach_no) + '.bil') # clip the baseline to this region v.in_region(output='region_tmp', overwrite=True) v.overlay(ainput='Mississippi_River', atype='line', binput='region_tmp', output='Mississippi_River_clip_tmp', operator='and', overwrite=True) v.out_ogr(input='Mississippi_River_clip_tmp', output=this_dir + 'Upper_Miss_baseline_reach' + str(reach_no) + ".shp", overwrite=True)
def exportPoints(): v.out_ogr(targetmap, output=path + start_shp, format='ESRI_Shapefile', overwrite=True) v.out_ogr(startmap, output=path + targets_shp, format='ESRI_Shapefile', overwrite=True)
overwrite=True) # Generate a vector of the full basin area # "value" column is empty v.dissolve(input=basins_inbasin, output=basin, column='label', overwrite=True) # Export shapefiles of all vector files try: os.mkdir('shapefiles') except: pass os.chdir('shapefiles') for _vector_file in [HRUs, gravity_reservoirs, MODFLOW_grid, basin]: v.out_ogr(input=_vector_file, output=_vector_file, type='area', quiet=True, overwrite=True) for _vector_file in [segments, reaches]: v.out_ogr(input=_vector_file, output=_vector_file, type='line', quiet=True, overwrite=True) for _vector_file in [pour_point, bc_cell]: v.out_ogr(input=_vector_file, output=_vector_file, type='point', quiet=True, overwrite=True) #os.chdir('..')
overwrite=True) # Generate a vector of the full basin area # "value" column is empty v.dissolve(input=basins_inbasin, output=basin, column='label', overwrite=True) # Export shapefiles of all vector files try: os.mkdir('shapefiles') except: pass os.chdir('shapefiles') for _vector_file in [HRUs, gravity_reservoirs, MODFLOW_grid, basin]: v.out_ogr(input=_vector_file, output=_vector_file, type='area', format='ESRI_Shapefile', quiet=True, overwrite=True) for _vector_file in [segments, reaches]: v.out_ogr(input=_vector_file, output=_vector_file, type='line', format='ESRI_Shapefile', quiet=True, overwrite=True) for _vector_file in [pour_point, bc_cell]: v.out_ogr(input=_vector_file, output=_vector_file, type='point', format='ESRI_Shapefile', quiet=True,
grd = GridModule('r.contour', width=width, height=height, overlap=20, processes=cpus, input=grassfile, output=grasscontoursfile, minlevel=200, maxlevel=800, step=10, overwrite=True) grd.run() #Write output to file v.out_ogr(input=grasscontoursfile, output=contoursfile, overwrite=True) # These can be left out, just debug info print("\n\n ***DEBUG INFO***") print("GRASS version") print(g.version()) print("GRASS env settings: gisdatabase, location, mapset") g.gisenv() print("Available datasets:") g.list(type="all", flags='m') print("Input file info") r.info(map=grassfile, verbose=True)
points=Points, # Trip_1 output=JR, operation='connect', threshold='100', flags=O) #v.db_addtable(map=JR, layer=2) #v.db_update(map=JR, column='cat', value=1, where="Block like 'Start'") #v.db_update(map=JR, column='cat', value=L, where="Block like 'End'") #for ix,i in enumerate(sorted(block), start=2): #v.db_update(map=Points, column='cat', value=ix, where="Block like '%s'"%i) v.net_salesman(input=JR, output=Path, center_cats='1-61', flags=O) v.out_ogr(input=Path, output=Path + '.shp', format='ESRI_Shapefile', flags=O) # Export Trip #if not os.path.exists('Trips'): os.mkdir('Trips') #for lyr in (Path, Points): #v.out_ogr(input=lyr, #output=Join('Trips',lyr), #format='ESRI_Shapefile', #flags=O) #g.remove(type='vector', name=(Points,JR,Path), flags=['f']) #break #g.remove(type='vector', name=('nBlocks', 'nPoints'), flags=['f'])