def grass_dir_setup(): """Create new folder for GRASS workspace""" gisdbase = os.path.join(cc_env.proj_dir, "gwksp") # Remove GRASS directory if it exists if not cc_util.remove_grass_wkspc(gisdbase): lm_util.warn("\nCannot delete GRASS workspace from earlier" " run." "\nPlease choose a new project directory.") raise Exception("Cannot delete GRASS workspace: " + gisdbase)
def grass_dir_setup(): """Create new folder for GRASS workspace""" gisdbase = os.path.join(cc_env.proj_dir, "gwksp") # Remove GRASS directory if it exists if not cc_util.remove_grass_wkspc(gisdbase): arcpy.AddWarning("\nCannot delete GRASS workspace from earlier" " run." "\nPlease choose a new project directory.") raise Exception("Cannot delete GRASS workspace: " + gisdbase) cc_util.add_grass_path(cc_env.gisbase)
def grass_cwd(core_list): """Creating CWD and Back rasters using GRASS r.walk function""" cur_path = subprocess.Popen("echo %PATH%", stdout=subprocess.PIPE, shell=True).stdout.read() gisdbase = os.path.join(cc_env.proj_dir, "gwksp") ccr_grassrc = os.path.join(cc_env.proj_dir, "ccr_grassrc") climate_asc = os.path.join(cc_env.out_dir, "cc_climate.asc") resist_asc = os.path.join(cc_env.out_dir, "cc_resist.asc") core_asc = os.path.join(cc_env.out_dir, "cc_cores.asc") climate_lyr = "climate" resist_lyr = "resist" core_lyr = "cores" try: lm_util.gprint("\nRUNNING GRASS TO CREATE COST-WEIGHTED DISTANCE " "RASTERS") # Convert input GRID rasters to ASCII lm_util.gprint("Converting ARCINFO GRID rasters to ASCII") # Note: consider moving these to main: arcpy.RasterToASCII_conversion(cc_env.prj_climate_rast, climate_asc) arcpy.RasterToASCII_conversion(cc_env.prj_resist_rast, resist_asc) arcpy.RasterToASCII_conversion(cc_env.prj_core_rast, core_asc) # Create resource file and setup workspace write_grassrc(ccr_grassrc, gisdbase) setup_wrkspace(gisdbase, ccr_grassrc, climate_asc) # Make cwd folder for Linkage Mapper lm_util.make_cwd_paths(max(core_list)) # Import files into GRASS lm_util.gprint("Importing raster files into GRASS") run_grass_cmd("r.in.arc", input=climate_asc, output=climate_lyr) run_grass_cmd("r.in.arc", input=resist_asc, output=resist_lyr) run_grass_cmd("r.in.arc", input=core_asc, output=core_lyr) # Generate CWD and Back rasters gen_cwd_back(core_list, climate_lyr, resist_lyr, core_lyr) except Exception: raise finally: os.environ['PATH'] = cur_path # Revert to original windows path if not cc_util.remove_grass_wkspc(gisdbase): arcpy.AddWarning("Unable to delete temporary GRASS folder. " "Program will contine.") cc_util.delete_features( [climate_asc, resist_asc, core_asc, ccr_grassrc])
def grass_cwd(core_list): """Creating CWD and Back rasters using GRASS r.walk function""" gisdbase = os.path.join(cc_env.proj_dir, "gwksp") ccr_grassrc = os.path.join(cc_env.proj_dir, "ccr_grassrc") climate_asc = os.path.join(cc_env.out_dir, "cc_climate.asc") resist_asc = os.path.join(cc_env.out_dir, "cc_resist.asc") core_asc = os.path.join(cc_env.out_dir, "cc_cores.asc") climate_lyr = "climate" resist_lyr = "resist" core_lyr = "cores" try: lm_util.gprint("\nRUNNING GRASS TO CREATE COST-WEIGHTED DISTANCE " "RASTERS") # Convert input GRID rasters to ASCII lm_util.gprint("Converting ARCINFO GRID rasters to ASCII") arcpy.RasterToASCII_conversion(cc_env.prj_climate_rast, climate_asc) arcpy.RasterToASCII_conversion(cc_env.prj_resist_rast, resist_asc) arcpy.RasterToASCII_conversion(cc_env.prj_core_rast, core_asc) # Create resource file and setup workspace start_path = os.environ["PATH"] os.environ["PATH"] = cc_env.gpath write_grassrc(ccr_grassrc, gisdbase) setup_wrkspace(gisdbase, ccr_grassrc, climate_asc) # Make cwd folder for Linkage Mapper lm_util.make_cwd_paths(max(core_list)) # Import files into GRASS lm_util.gprint("Importing raster files into GRASS") run_grass_cmd("r.in.gdal", input=climate_asc, output=climate_lyr) run_grass_cmd("r.in.gdal", input=resist_asc, output=resist_lyr) run_grass_cmd("r.in.gdal", input=core_asc, output=core_lyr) # Generate CWD and Back rasters gen_cwd_back(core_list, climate_lyr, resist_lyr, core_lyr) except Exception: raise finally: os.environ["PATH"] = start_path if not cc_util.remove_grass_wkspc(gisdbase): lm_util.warn("Unable to delete temporary GRASS folder. " "Program will contine.") cc_util.delete_features( [climate_asc, resist_asc, core_asc, ccr_grassrc])