-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathZooplankton_Model.py
executable file
·173 lines (134 loc) · 15.1 KB
/
Zooplankton_Model.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
# -*- coding: utf-8 -*-
"""
Generated by ArcGIS ModelBuilder on : 2021-11-30 12:37:55
"""
import arcpy
def Model(): # Model
# To allow overwriting outputs change overwriteOutput option to True.
arcpy.env.overwriteOutput = False
# Check out any necessary licenses.
arcpy.CheckOutExtension("GeoStats")
arcpy.CheckOutExtension("spatial")
arcpy.CheckOutExtension("3D")
arcpy.CheckOutExtension("ImageAnalyst")
arcpy.ImportToolbox(r"c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Analysis Tools.tbx.tbx")
study_area = "study_area"
World_Continents = "World_Continents"
shipping_tif = arcpy.Raster("shipping.tif")
Zooplankton_abundance_1977_2017 = "Zooplankton_abundance_1977_2017"
chlorophyll_2009_2013 = arcpy.Raster("chlorophyll_2009_2013")
Start_Stop_Feature = "Start_Stop_Feature"
World_Continents_2_ = "World_Continents"
Start_Point = "Start_Point"
Stop_Point = "Stop_Point"
# Process: Select (Select) (analysis)
North_America = "\\\\Mac\\Bubbles\\final project\\zooplankton\\zooplankton.gdb\\North_America"
arcpy.analysis.Select(in_features=World_Continents, out_feature_class=North_America, where_clause="")
# Process: Buffer (Buffer) (analysis)
North_America_250kmBuffer = "\\\\Mac\\Bubbles\\final project\\zooplankton\\zooplankton.gdb\\North_America_250kmBuffer"
arcpy.analysis.Buffer(in_features=North_America, out_feature_class=North_America_250kmBuffer, buffer_distance_or_field="250000 Meters", line_side="FULL", line_end_type="ROUND", dissolve_option="NONE", dissolve_field=[], method="PLANAR")
# Process: Clip (Clip) (analysis)
study_area_250kmbuffer = "\\\\Mac\\Bubbles\\final project\\zooplankton\\zooplankton.gdb\\study_area_250kmbuffer"
arcpy.analysis.Clip(in_features=study_area, clip_features=North_America_250kmBuffer, out_feature_class=study_area_250kmbuffer, cluster_tolerance="")
# Process: Erase (Erase) (analysis)
ocean_250kmbuffer = "\\\\Mac\\Bubbles\\final project\\zooplankton\\zooplankton.gdb\\ocean_250kmbuffer"
arcpy.analysis.Erase(in_features=study_area_250kmbuffer, erase_features=North_America, out_feature_class=ocean_250kmbuffer, cluster_tolerance="")
# Process: Create Fishnet (Create Fishnet) (management)
grid_study_area_5km2 = "\\\\Mac\\Bubbles\\final project\\zooplankton\\zooplankton.gdb\\grid_study_area_5km2"
Output_Label_Feature_Class_Optional_ = arcpy.management.CreateFishnet(out_feature_class=grid_study_area_5km2, origin_coord="-9490636.2837 3908380.8876", y_axis_coord="-9490636.2837 3908390.8876", cell_width=5000, cell_height=5000, number_rows=None, number_columns=None, corner_coord="-4809636.2837 6955380.8876", labels="NO_LABELS", template=ocean_250kmbuffer, geometry_type="POLYGON")[0]
# Process: Raster to Point (Raster to Point) (conversion)
shipping_density_points = "\\\\Mac\\Bubbles\\final project\\zooplankton\\zooplankton.gdb\\shipping_density_points"
arcpy.conversion.RasterToPoint(in_raster=shipping_tif, out_point_features=shipping_density_points, raster_field="Value")
# Process: Clip (3) (Clip) (analysis)
shipping_density_points_study_area = "\\\\Mac\\Bubbles\\final project\\zooplankton\\zooplankton.gdb\\shipping_density_points_study_area"
arcpy.analysis.Clip(in_features=shipping_density_points, clip_features=grid_study_area_5km2, out_feature_class=shipping_density_points_study_area, cluster_tolerance="")
# Process: Summarize Within (Summarize Within) (analysis)
avg_shipping_density_5km2 = "\\\\Mac\\Bubbles\\final project\\zooplankton\\zooplankton.gdb\\avg_shipping_density_5km2"
Output_Grouped_Table = ""
arcpy.analysis.SummarizeWithin(in_polygons=grid_study_area_5km2, in_sum_features=shipping_density_points_study_area, out_feature_class=avg_shipping_density_5km2, keep_all_polygons="KEEP_ALL", sum_fields=[["grid_code", "Mean"]], sum_shape="ADD_SHAPE_SUM", shape_unit="SQUAREKILOMETERS", group_field="", add_min_maj="NO_MIN_MAJ", add_group_percent="NO_PERCENT", out_group_table=Output_Grouped_Table)
# Process: Clip (2) (Clip) (analysis)
Zooplankton_abundance_study_area = "\\\\Mac\\Bubbles\\final project\\zooplankton\\zooplankton.gdb\\Zooplankton_abundance_study_area"
arcpy.analysis.Clip(in_features=Zooplankton_abundance_1977_2017, clip_features=ocean_250kmbuffer, out_feature_class=Zooplankton_abundance_study_area, cluster_tolerance="")
# Process: EBK Regression Prediction (EBK Regression Prediction) (ga)
EBKRegressionPrediction_Zooplankton_abundance_10m2 = "EBKRegressionPrediction_Zooplankton_abundance_10m2"
EBKRegressionPrediction_Zooplankton_Raster = "\\\\Mac\\Bubbles\\final project\\zooplankton\\zooplankton.gdb\\EBKRegressionPrediction_Zooplankton_Raster"
EBKRegressionPrediction_Zooplankton_DiagnosticFeature = "\\\\Mac\\Bubbles\\final project\\zooplankton\\zooplankton.gdb\\EBKRegressionPrediction_Zooplankton_DiagnosticFeature"
arcpy.ga.EBKRegressionPrediction(in_features=Zooplankton_abundance_study_area, dependent_field="PLANKTON_10m2", in_explanatory_rasters=[chlorophyll_2009_2013], out_ga_layer=EBKRegressionPrediction_Zooplankton_abundance_10m2, out_raster=EBKRegressionPrediction_Zooplankton_Raster, out_diagnostic_feature_class=EBKRegressionPrediction_Zooplankton_DiagnosticFeature, measurement_error_field="", min_cumulative_variance=95, in_subset_features="", transformation_type="NONE", semivariogram_model_type="K_BESSEL", max_local_points=100, overlap_factor=1, number_simulations=100, search_neighborhood="NBRTYPE=StandardCircular RADIUS=15 ANGLE=0 NBR_MAX=15 NBR_MIN=10 SECTOR_TYPE=ONE_SECTOR")
EBKRegressionPrediction_Zooplankton_Raster = arcpy.Raster(EBKRegressionPrediction_Zooplankton_Raster)
# Process: GA Layer To Contour (GA Layer To Contour) (ga)
Predicted_Zooplankton_abundance_filled_contours = "\\\\Mac\\Bubbles\\final project\\zooplankton\\zooplankton.gdb\\Predicted_Zooplankton_abundance_filled_contours"
arcpy.ga.GALayerToContour(in_geostat_layer=EBKRegressionPrediction_Zooplankton_abundance_10m2, contour_type="FILLED_CONTOUR", out_feature_class=Predicted_Zooplankton_abundance_filled_contours, contour_quality="DRAFT", classification_type="GEOMETRIC_INTERVAL", classes_count=10, classes_breaks=[], out_elevation="")
# Process: Clip (4) (Clip) (analysis)
Predicted_Zooplankton_abundance_filled_contours_study_area = "\\\\Mac\\Bubbles\\final project\\zooplankton\\zooplankton.gdb\\Predicted_Zooplankton_abundance_filled_contours_study_area"
arcpy.analysis.Clip(in_features=Predicted_Zooplankton_abundance_filled_contours, clip_features=grid_study_area_5km2, out_feature_class=Predicted_Zooplankton_abundance_filled_contours_study_area, cluster_tolerance="")
# Process: Summarize Within (2) (Summarize Within) (analysis)
Zooplankton_Abundance_Class_5km2 = "\\\\Mac\\Bubbles\\final project\\zooplankton\\zooplankton.gdb\\Zooplankton_Abundance_Class_5km2"
Output_Grouped_Table_2_ = ""
arcpy.analysis.SummarizeWithin(in_polygons=grid_study_area_5km2, in_sum_features=Predicted_Zooplankton_abundance_filled_contours_study_area, out_feature_class=Zooplankton_Abundance_Class_5km2, keep_all_polygons="KEEP_ALL", sum_fields=[["Class", "Min"]], sum_shape="ADD_SHAPE_SUM", shape_unit="SQUAREKILOMETERS", group_field="", add_min_maj="NO_MIN_MAJ", add_group_percent="NO_PERCENT", out_group_table=Output_Grouped_Table_2_)
# Process: Spatial Join (Spatial Join) (analysis)
Shipping_Zooplankton_grid = "\\\\Mac\\Bubbles\\final project\\zooplankton\\zooplankton.gdb\\Shipping_Zooplankton_grid"
arcpy.analysis.SpatialJoin(target_features=avg_shipping_density_5km2, join_features=Zooplankton_Abundance_Class_5km2, out_feature_class=Shipping_Zooplankton_grid, join_operation="JOIN_ONE_TO_ONE", join_type="KEEP_ALL", field_mapping="Mean_grid_code \"Mean grid_code\" true true false 0 Double 0 0,Mean,#,.\\zooplankton.gdb\\avg_shipping_density_5km2,Mean_grid_code,-1,-1;Sum_Length_SQUAREKILOMETERS \"Summarized length in SQUAREKILOMETERS\" true true false 0 Double 0 0,First,#,.\\zooplankton.gdb\\avg_shipping_density_5km2,Sum_Length_SQUAREKILOMETERS,-1,-1;Min_Class \"Min Class\" true true false 0 Double 0 0,Min,#,.\\zooplankton.gdb\\Zooplankton_Abundance_Class_5km2,Min_Class,-1,-1;Sum_Length_SQUAREKILOMETERS_1 \"Summarized length in SQUAREKILOMETERS\" true true false 0 Double 0 0,First,#,.\\zooplankton.gdb\\Zooplankton_Abundance_Class_5km2,Sum_Length_SQUAREKILOMETERS,-1,-1", match_option="INTERSECT", search_radius="", distance_field_name="")
# Process: Select Layer By Attribute (Select Layer By Attribute) (management)
Shipping_Zooplankton_grid_La, Count = arcpy.management.SelectLayerByAttribute(in_layer_or_view=Shipping_Zooplankton_grid, selection_type="NEW_SELECTION", where_clause="Shape_Area = 25000000 And MIN_Classes IS NOT NULL", invert_where_clause="")
# Process: Local Bivariate Relationships (Local Bivariate Relationships) (stats)
Shipping_Zooplankton_LocalBivariateRelationships = "\\\\Mac\\Bubbles\\final project\\zooplankton\\zooplankton.gdb\\Shipping_Zooplankton_LocalBivariateRelationships"
arcpy.stats.LocalBivariateRelationships(in_features=Shipping_Zooplankton_grid_La, dependent_variable="Min_Class", explanatory_variable="Mean_grid_code", output_features=Shipping_Zooplankton_LocalBivariateRelationships, number_of_neighbors=50, number_of_permutations=499, enable_local_scatterplot_popups="CREATE_POPUP", level_of_confidence="95%", apply_false_discovery_rate_fdr_correction="APPLY_FDR", scaling_factor=0.5)
# Process: Create Constant Raster (Create Constant Raster) (sa)
CreateConsta5km = "\\\\Mac\\Bubbles\\final project\\zooplankton\\zooplankton.gdb\\CreateConsta5km"
Create_Constant_Raster = CreateConsta5km
CreateConsta5km = arcpy.sa.CreateConstantRaster(constant_value=1, data_type="INTEGER", cell_size="5000", extent="-9490636.2837 3908380.8876 -4809636.2837 6955380.8876")
CreateConsta5km.save(Create_Constant_Raster)
# Process: Feature to Raster (2) (Feature to Raster) (conversion)
Shipping_avg_Density_Raster = "\\\\Mac\\Bubbles\\final project\\zooplankton\\zooplankton.gdb\\Shipping_avg_Density_Raster"
with arcpy.EnvManager(cellSize=CreateConsta5km):
arcpy.conversion.FeatureToRaster(in_features=avg_shipping_density_5km2, field="Mean_grid_code", out_raster=Shipping_avg_Density_Raster, cell_size="5000")
Shipping_avg_Density_Raster = arcpy.Raster(Shipping_avg_Density_Raster)
# Process: Reclassify (2) (Reclassify) (sa)
Shipping_avgDensity_Class_raster = "\\\\Mac\\Bubbles\\final project\\zooplankton\\zooplankton.gdb\\Shipping_avgDensity_Class_raster"
Reclassify_2_ = Shipping_avgDensity_Class_raster
Shipping_avgDensity_Class_raster = arcpy.sa.Reclassify(in_raster=Shipping_avg_Density_Raster, reclass_field="VALUE", remap="0.215208 63.613073 9;63.613073 95.109058 8;95.109058 110.756226 7;110.756226 142.252211 6;142.252211 205.650076 5;205.650076 333.262830 4;333.262830 590.132911 3;590.132911 1107.183419 2;1107.183419 2147.947781 1;2147.947781 4242.889075 0", missing_values="DATA")
Shipping_avgDensity_Class_raster.save(Reclassify_2_)
# Process: Select (2) (Select) (analysis)
North_America_2_ = "\\\\Mac\\Bubbles\\final project\\zooplankton\\zooplankton.gdb\\North_America"
arcpy.analysis.Select(in_features=World_Continents_2_, out_feature_class=North_America_2_, where_clause="")
# Process: Buffer (2) (Buffer) (analysis)
NA_Buffer_25km = "\\\\Mac\\Bubbles\\final project\\zooplankton\\zooplankton.gdb\\NA_Buffer_25km"
arcpy.analysis.Buffer(in_features=North_America_2_, out_feature_class=NA_Buffer_25km, buffer_distance_or_field="25000 Meters", line_side="FULL", line_end_type="ROUND", dissolve_option="NONE", dissolve_field=[], method="PLANAR")
# Process: Buffer (3) (Buffer) (analysis)
NA_Buffer_250km = "\\\\Mac\\Bubbles\\final project\\zooplankton\\zooplankton.gdb\\NA_Buffer_250km"
arcpy.analysis.Buffer(in_features=North_America_2_, out_feature_class=NA_Buffer_250km, buffer_distance_or_field="250000 Meters", line_side="FULL", line_end_type="ROUND", dissolve_option="NONE", dissolve_field=[], method="PLANAR")
# Process: Union (Union) (analysis)
NA_Buffer_Union = "\\\\Mac\\Bubbles\\final project\\zooplankton\\zooplankton.gdb\\NA_Buffer_Union"
arcpy.analysis.Union(in_features=[[NA_Buffer_25km, ""], [NA_Buffer_250km, ""]], out_feature_class=NA_Buffer_Union, join_attributes="ALL", cluster_tolerance="", gaps="GAPS")
# Process: Feature to Raster (4) (Feature to Raster) (conversion)
Buffer_Raster = "\\\\Mac\\Bubbles\\final project\\zooplankton\\zooplankton.gdb\\Buffer_Raster"
arcpy.conversion.FeatureToRaster(in_features=NA_Buffer_Union, field="OBJECTID", out_raster=Buffer_Raster, cell_size="5000")
Buffer_Raster = arcpy.Raster(Buffer_Raster)
# Process: Reclassify (3) (Reclassify) (sa)
Reclass_Buffer_Raster = "\\\\Mac\\Bubbles\\final project\\zooplankton\\zooplankton.gdb\\Reclass_Buffer_Raster"
Reclassify_3_ = Reclass_Buffer_Raster
Reclass_Buffer_Raster = arcpy.sa.Reclassify(in_raster=Buffer_Raster, reclass_field="VALUE", remap="1 1;2 10", missing_values="DATA")
Reclass_Buffer_Raster.save(Reclassify_3_)
# Process: Feature to Raster (Feature to Raster) (conversion)
Predicted_Zooplankton_Class_Raster = "\\\\Mac\\Bubbles\\final project\\zooplankton\\zooplankton.gdb\\Predicted_Zooplankton_Class_Raster"
with arcpy.EnvManager(cellSize=CreateConsta5km):
arcpy.conversion.FeatureToRaster(in_features=Predicted_Zooplankton_abundance_filled_contours, field="Classes", out_raster=Predicted_Zooplankton_Class_Raster, cell_size="5000")
Predicted_Zooplankton_Class_Raster = arcpy.Raster(Predicted_Zooplankton_Class_Raster)
# Process: Weighted Sum (Weighted Sum) (sa)
Cost_Surface = "\\\\Mac\\Bubbles\\final project\\zooplankton\\zooplankton.gdb\\Cost_Surface"
Weighted_Sum = Cost_Surface
Cost_Surface = arcpy.sa.WeightedSum(in_rasters=[[Shipping_avgDensity_Class_raster, "VALUE", 0.15], [Reclass_Buffer_Raster, "VALUE", 0.15], [Predicted_Zooplankton_Class_Raster, "VALUE", 0.7]])
Cost_Surface.save(Weighted_Sum)
# Process: Cost Distance (Cost Distance) (sa)
Cost_Distance_Surface = "\\\\Mac\\Bubbles\\final project\\zooplankton\\zooplankton.gdb\\Cost_Distance_Surface"
Cost_Distance = Cost_Distance_Surface
Output_backlink_raster = ""
Cost_Distance_Surface = arcpy.sa.CostDistance(in_source_data=Start_Stop_Feature, in_cost_raster=Cost_Surface, maximum_distance=None, out_backlink_raster=Output_backlink_raster, source_cost_multiplier="", source_start_cost="", source_resistance_rate="", source_capacity="", source_direction="")
Cost_Distance_Surface.save(Cost_Distance)
# Process: Least Cost Path (Least Cost Path) (intelligence)
Least_Cost_Path_173 = "\\\\Mac\\Bubbles\\final project\\zooplankton\\zooplankton.gdb\\Least_Cost_Path"
Output_Start_Point, Output_End_Point = arcpy.intelligence.LeastCostPath(in_cost_surface=Cost_Distance_Surface, in_start_point=Start_Point, in_end_point=Stop_Point, out_path_feature_class=Least_Cost_Path_173, handle_zeros="SMALL_POSITIVE")
if __name__ == '__main__':
# Global Environment settings
with arcpy.EnvManager(scratchWorkspace=r"\\Mac\Bubbles\final project\zooplankton\zooplankton.gdb", workspace=r"\\Mac\Bubbles\final project\zooplankton\zooplankton.gdb"):
Model()