def get_ocn_npp_avg(bioregion): oceanic_geom = get_oceanic_geom(bioregion) if oceanic_geom.area == 0: npp_avg = 0 else: npp_geom = RasterDataset.objects.get(name='npp_ocn') npp_stats = zonal_stats(oceanic_geom, npp_geom) #settling on the following to account for lack of overlap #(see if statement above which helps with this issue as well) try: npp_avg = npp_stats.avg * 365 / 1000 #mg per day converted to g per year except: npp_avg = 0 return npp_avg
def get_marine_ecosystem_impacts(bioregion): oceanic_geom = get_oceanic_geom(bioregion) if oceanic_geom.area == 0: return 0 mi_geom = RasterDataset.objects.get(name="ocean_impact") mi_stats = zonal_stats(oceanic_geom, mi_geom) if mi_stats.avg: avg = round(mi_stats.avg, 1) if avg < 1.4: impact = "Very Low" elif avg < 4.95: impact = "Low" elif avg < 8.47: impact = "Medium" elif avg < 12: impact = "Medium High" elif avg < 15.52: impact = "High" else: impact = "Very High" return impact return default_value
def get_marine_ecosystem_impacts(bioregion): oceanic_geom = get_oceanic_geom(bioregion) if oceanic_geom.area == 0: return 0 mi_geom = RasterDataset.objects.get(name='ocean_impact') mi_stats = zonal_stats(oceanic_geom, mi_geom) if mi_stats.avg: avg = round(mi_stats.avg, 1) if avg < 1.4: impact = 'Very Low' elif avg < 4.95: impact = 'Low' elif avg < 8.47: impact = 'Medium' elif avg < 12: impact = 'Medium High' elif avg < 15.52: impact = 'High' else: impact = 'Very High' return impact return default_value
def get_oceanic_area(bioregion): oceanic_geom = get_oceanic_geom(bioregion) oceanic_area_km = int(round(geometry_area_in_display_units(oceanic_geom))) oceanic_area_mi = int(round(convert_sq_km_to_sq_mi(oceanic_area_km))) return oceanic_area_km, oceanic_area_mi