diff --git a/outputs_2017088_Survey2.py b/outputs_2017088_Survey2.py index bcff8b2..0bf723c 100644 --- a/outputs_2017088_Survey2.py +++ b/outputs_2017088_Survey2.py @@ -25,79 +25,6 @@ from cycler import cycler from survey_tools import call_lastools, extract_pts, update_survey_output -############################################################################### -########################## FIXED INPUTS ####################################### -######### UNCOMMENT THIS SECTION IF YOU WANT TO DEFINE EACH INPUT INDIVIDUALLY ###################### -##path to LasTools NOTE THERE CAN BE NO SPACES -path_2_lastools='C:/ProgramData/chocolatey' -# input_file=r"J:\Project\wrl2017088 Central Coast Council Aerial Survey and Coastal Analysis\04_Working\Python\Survey 2\Parameter Files\las outputs survey2.xlsx" -input_file='Parameter Files/las outputs survey2.xlsx' -#input_file=r"J:\Project\wrl2017088 Central Coast Council Aerial Survey and Coastal Analysis\04_Working\Python\Survey 2\Parameter Files\las outputs survey2_V2.xlsx" -############################## -############################### SUB ROUTINES ################################## -def check_output(command,console): - - if console == True: - process = subprocess.Popen(command) - else: - process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True) - output,error = process.communicate() - returncode = process.poll() - - return returncode,output - -def crop_las(las, shp, output, lastools_loc): - # output is the full path and filename (inc extension) to put in - path_2_lasclip=lastools_loc+"\\bin\\lasclip" - - command="%s -i %s -poly %s -o %s" % (path_2_lasclip, las, shp, output) - - returncode,output = check_output(command, False) - - if returncode!= 0: - print("Error. lasclip failed on %s" % shp.split('//')[-1].split('.')[0]) - else: - return None - -def las_boundary(las, crop_poly_name, path_2_crop_polygon, lastools_loc, zone): - path_2_lasboundary=lastools_loc+"\\bin\\lasboundary" - fname=crop_poly_name - prjfname="%s%s.prj" %(path_2_crop_polygon, fname) - path_2_crop_poly='%s%s.shp' % (path_2_crop_polygon, fname) - command="%s -i %s -o %s" % (path_2_lasboundary, las, path_2_crop_poly) - - prj=open(prjfname, 'w') - if zone==56: - prj.write('PROJCS["GDA_1994_MGA_Zone_56",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]') - elif zone==55: - prj.write('PROJCS["GDA_1994_MGA_Zone_55",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]') - elif zone==57: - prj.write('PROJCS["GDA_1994_MGA_Zone_57",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",159.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]') - prj.close() - - returncode,output = check_output(command, False) - - return None - -def make_raster(las, output, lastools_loc, keep_only_ground=False, step=0.2): - #not that keep ground only option only rasters points classified as "2" in the lidar (ie ground) - #this effectively creates a "bare earth dem" - #note that this should only be used after remove_veg and/or remove_buildings has been run - - path_2_blastdem=lastools_loc+"\\bin\\blast2dem" - - if keep_only_ground==False: - command="%s -i %s -o %s -step %s" % (path_2_blastdem, las, output, step) - else: - command="%s -i %s -o %s -step %s -keep_class 2" % (path_2_blastdem, las, output,step) - - returncode,output2 = check_output(command, False) - - if returncode!= 0: - print("Error. blast2dem failed on %s" % las.split('\\')[-1].split('.')[0]) - else: - return None - def plot_profiles(profile_info, profile, output_loc, LL_limit): #plot the profile. expects output from CC_split_profile @@ -274,8 +201,6 @@ def remove_temp_files(directory): return None -############################################################################### -########################### RUN CODE ########################################## input_file = 'Parameter Files/las-manipulation-survey-2.xlsx' params_file=pd.read_excel(input_file, sheet_name="PARAMS") @@ -347,4 +272,4 @@ for i in range(0, len(params_file)): #0, len(params_file) #remove_temp_files(int_dir) print("doing the volume analysis") -test=profile_plots_volume(csv_loc, LL_file, volume_output, graph_loc) +test=profile_plots_volume(csv_output_dir, profile_limit_file, volume_output, graph_loc)