def DinfFlowDir(): import argparse parser = argparse.ArgumentParser( description='Assigns a flow direction based on the D-infinity flow' ' method using the steepest slope of a triangular facet (Tarboton, ' '1997, "A New Method for the Determination of Flow Directions and ' 'Contributing Areas in Grid Digital Elevation Models," Water Resources' ' Research, 33(2): 309-319).') parser.add_argument('Input_Pit_Filled_Elevation', help='The input pit-filled elevation file in ' 'geotiff format.', ) parser.add_argument('Input_Number_of_Chunks', help="The approximate number of chunks that the input " 'file will be divided into for processing (potentially' ' on multiple processors).', type=int, default=1, nargs='?') parser.add_argument('Output_D_Infinity_Flow_Direction', help='Output filename for the flow direction. Default' ' value = ang.tif .', default='ang.tif', nargs='?') parser.add_argument('Output_D_Infinity_Slope', help='Output filename for the flow direction. Default' ' value = mag.tif .', default='mag.tif', nargs='?') args = parser.parse_args() fn = args.Input_Pit_Filled_Elevation n_chunks = args.Input_Number_of_Chunks fn_ang = args.Output_D_Infinity_Flow_Direction fn_mag = args.Output_D_Infinity_Slope from pydem.dem_processing import DEMProcessor dem_proc = DEMProcessor(fn) shape = dem_proc.data.shape chunk_size = max(shape[0], shape[1]) / n_chunks dem_proc.chunk_size_slp_dir = chunk_size dem_proc.calc_slopes_directions() dem_proc.save_array(dem_proc.mag, fn_mag, as_int=False) dem_proc.save_array(dem_proc.direction, fn_ang, as_int=False)
def TWIDinf(): import argparse parser = argparse.ArgumentParser( description='Calculates a grid of topographic wetness index ' ' which is the log_e(uca / mag), that is, the natural log of the ratio' ' of contributing area per unit contour length and the magnitude of ' ' the slope. Note, this function takes the elevation ' 'as an input, and it calculates the ' 'slope, direction, and contributing area as intermediate steps.') parser.add_argument('Input_Pit_Filled_Elevation', help='The input pit-filled elevation file in ' 'geotiff format.', ) parser.add_argument('Input_Number_of_Chunks', help="The approximate number of chunks that the input " 'file will be divided into for processing (potentially' ' on multiple processors).', type=int, default=1, nargs='?') parser.add_argument('Output_D_Infinity_TWI', help='Output filename for the topographic wetness ' 'index. Default value = twi.tif .', default='twi.tif', nargs='?') parser.add_argument('--save-all', '--sa', help='If set, will save all intermediate files as well.', action='store_true') args = parser.parse_args() fn = args.Input_Pit_Filled_Elevation n_chunks = args.Input_Number_of_Chunks fn_twi = args.Output_D_Infinity_TWI sa = args.save_all from pydem.dem_processing import DEMProcessor dem_proc = DEMProcessor(fn) shape = dem_proc.data.shape chunk_size = max(shape[0], shape[1]) / n_chunks dem_proc.chunk_size_slp_dir = chunk_size dem_proc.chunk_size_uca = chunk_size dem_proc.calc_slopes_directions() dem_proc.calc_uca() if sa: dem_proc.save_array(dem_proc.mag, 'mag.tif', as_int=False) dem_proc.save_array(dem_proc.direction, 'ang.tif', as_int=False) dem_proc.save_array(dem_proc.uca, 'uca.tif', as_int=False) dem_proc.calc_twi() dem_proc.save_array(dem_proc.twi, fn_twi, as_int=True)
def AreaDinf(): import argparse parser = argparse.ArgumentParser( description='Calculates a grid of specific catchment area which is the' ' contributing area per unit contour length using the multiple flow ' 'direction D-infinity approach. Note, this is different from the ' 'equivalent tauDEM function, in that it takes the elevation ' '(not the flow direction) as an input, and it calculates the ' 'slope and direction as intermediate steps.') parser.add_argument('Input_Pit_Filled_Elevation', help='The input pit-filled elevation file in ' 'geotiff format.', ) parser.add_argument('Input_Number_of_Chunks', help="The approximate number of chunks that the input " 'file will be divided into for processing (potentially' ' on multiple processors).', type=int, default=1, nargs='?') parser.add_argument('Output_D_Infinity_Specific_Catchment_Area', help='Output filename for the flow direction. Default' ' value = uca.tif .', default='uca.tif', nargs='?') parser.add_argument('--save-all', '--sa', help='If set, will save all intermediate files as well.', action='store_true') args = parser.parse_args() fn = args.Input_Pit_Filled_Elevation n_chunks = args.Input_Number_of_Chunks fn_uca = args.Output_D_Infinity_Specific_Catchment_Area sa = args.save_all from pydem.dem_processing import DEMProcessor dem_proc = DEMProcessor(fn) shape = dem_proc.data.shape chunk_size = max(shape[0], shape[1]) / n_chunks dem_proc.chunk_size_slp_dir = chunk_size dem_proc.chunk_size_uca = chunk_size dem_proc.calc_slopes_directions() if sa: dem_proc.save_array(dem_proc.mag, 'mag.tif', as_int=False) dem_proc.save_array(dem_proc.direction, 'ang.tif', as_int=False) dem_proc.calc_uca() dem_proc.save_array(dem_proc.uca, fn_uca, as_int=False)