def historical_sum_swe(lat_index,lon_index): ''' this function uses the Livneh historical dataset (from 1950-2005) to check whether the historical sum of SWE in the input grid cell is greater than or equal to 10 mm ''' import os import numpy as np direc = '/raid9/gergel/agg_snowpack/goodleap/SWE' filename = 'livneh_april1swe.nc' from snowpack_functions import unpack_netcdf_file_var lats,lons,swe,datess = unpack_netcdf_file_var(direc,filename,"swe") historical_sum_swe = 0 for year in np.arange(len(swe)): historical_sum_swe += swe[year,lat_index,lon_index] mean_swe = historical_sum_swe/len(swe) if mean_swe >= 10: return True else: return False
def historical_sum_swe(lat_index, lon_index): ''' this function uses the Livneh historical dataset (from 1950-2005) to check whether the historical sum of SWE in the input grid cell is greater than or equal to 10 mm ''' import os import numpy as np direc = '/raid9/gergel/agg_snowpack/goodleap/SWE' filename = 'livneh_april1swe.nc' from snowpack_functions import unpack_netcdf_file_var lats, lons, swe, datess = unpack_netcdf_file_var(direc, filename, "swe") historical_sum_swe = 0 for year in np.arange(len(swe)): historical_sum_swe += swe[year, lat_index, lon_index] mean_swe = historical_sum_swe / len(swe) if mean_swe >= 10: return True else: return False
#!/bin/python import numpy as np import sys import os import math from snowpack_functions import import_gridcell_elevation,get_elev_for_lat_lon,lat_lon_adjust,unpack_netcdf_swe_month,mask_latlon,unpack_netcdf_file_var,historical_sum_swe import pandas as pd ## get command line arguments args = sys.argv[1:] basin = args[0] scenario = args[1] chunk = args[2] direc = '/raid9/gergel/agg_snowpack/goodleap/%s' %basin file_swe = 'SWE_ensavg_%s_%s.nc' %(scenario,basin) lats,lons,swe,datess = unpack_netcdf_file_var(direc,file_swe,"swe") soil_file = '/raid9/gergel/agg_snowpack/soil_avail.txt' elev_corr_info = import_gridcell_elevation(soil_file) ## step 1: load data sources ## PET: all three: NatVeg, Short, Tall ## AET: evaporation plus transpiration ## compare pet and aet from VIC (then see about computing aet using pm reference et) pet_agg = list() aet_agg = list() lats_inc = list() lons_inc = list() coms = list() elevs = list()
def swe_elevation_mean(lats,lons,swe,datess,elev_corr_info,basin,scenario): import numpy as np import math from snowpack_functions import unpack_netcdf_file_var,get_elev_for_lat_lon,mask_latlon,lat_lon_adjust ## get historical SWE for model so that historical mean can be determined for mask direc = '/raid9/gergel/agg_snowpack/goodleap/%s' %basin file_hist = 'SWE_ensavg_%s_%s.nc' %("historical",basin) file = 'SWE_ensavg_%s_%s.nc' %(scenario,basin) lats_hist,lons_hist,swe_hist,datess_hist = unpack_netcdf_file_var(direc,file_hist,"swe") ## list for latitude and longitude values included in the historical mean mask lats_lons_inc_in_mask = list() ## initialize lists for storing grid cell elevations if (scenario == "historical"): swe_inc = list() elev_inc = list() else: swe_1 = list() elev_1 = list() swe_2 = list() elev_2 = list() swe_3 = list() elev_3 = list() count = 0 ################# loop through array and get latitude, longitude and swe values for each ############# for j in np.arange(len(lats)): ### loop over latitude for k in np.arange(len(lons)): ### loop over longitude ### don't calculate area for missing value elements ### isnan will convert masked values to nan's, so this statement will evaluate to false if ### the value exists (and thus is not masked) historical_mean_swe = 0 ## calculate historical mean SWE for grid cell if (math.isnan(swe[0,j,k]) == False): if_in_box = mask_latlon(lats[j],lons[k],basin) adjust_mask = lat_lon_adjust(lats[j],lons[k],basin) if if_in_box and adjust_mask: historical_sum_swe = 0 for year in np.arange(len(swe_hist)): historical_sum_swe += swe_hist[year,j,k] historical_mean_swe = historical_sum_swe/len(swe_hist) if (historical_mean_swe >= 10): count += 1 ## get elevation of grid cell elevation_individual_gridcell = get_elev_for_lat_lon(elev_corr_info,lats[j],lons[k]) ## add swe and elevation values to lists depending on scenario if (scenario == "historical"): sum_swe = 0 for year in np.arange(len(swe)): ## calculate mean swe sum_swe += swe[year,j,k] mean_swe = sum_swe/len(swe) mean_swe = mean_swe*0.001 # convert mm to meters swe_inc.append(mean_swe) elev_inc.append(elevation_individual_gridcell) else: sum_swe = 0 for year in np.arange(4,34): sum_swe += swe[year,j,k] mean_swe = sum_swe/len(np.arange(4,33)) mean_swe = mean_swe*0.001 # convert mm to meters swe_1.append(mean_swe) elev_1.append(elevation_individual_gridcell) sum_swe = 0 for year in np.arange(34,64): sum_swe += swe[year,j,k] mean_swe = sum_swe/len(np.arange(4,33)) mean_swe = mean_swe*0.001 # convert mm to meters swe_2.append(mean_swe) elev_2.append(elevation_individual_gridcell) sum_swe = 0 for year in np.arange(64,94): sum_swe += swe[year,j,k] mean_swe = sum_swe/len(np.arange(4,33)) mean_swe = mean_swe*0.001 # convert mm to meters swe_3.append(mean_swe) elev_3.append(elevation_individual_gridcell) print(count) ##### save arrays to files for a multimodel average (and for spatial plots with lats and lons) ## define path based on scenario filearrayname = '/raid9/gergel/agg_snowpack/elevations/ensavg_%s_%s.npz' %(basin,scenario) if (scenario == "historical"): np.savez(filearrayname,swe=np.asarray(swe_inc),elevations=np.asarray(elev_inc)) return (swe_inc,elev_inc) else: np.savez(filearrayname,swe1=np.asarray(swe_1),swe2=np.asarray(swe_2),swe3=np.asarray(swe_3),elev1=np.asarray(elev_1),elev2=np.asarray(elev_2),elev3=np.asarray(elev_3)) return (swe_1,swe_2,swe_3,elev_1,elev_2,elev_3)
return (swe_1,swe_2,swe_3,elev_1,elev_2,elev_3) ################################################ BEGIN LOESS ANALYSIS ######################################### import numpy as np import sys from snowpack_functions import unpack_netcdf_file_var, import_gridcell_elevation ## get command line arguments args = sys.argv[1:] basin = args[0] scenario = args[1] soil_file = '/raid9/gergel/agg_snowpack/soil_avail.txt' elev_corr_info = import_gridcell_elevation(soil_file) direc = '/raid9/gergel/agg_snowpack/goodleap/%s' %basin file = 'SWE_ensavg_%s_%s.nc' %(scenario,basin) lats, lons, swe, datess = unpack_netcdf_file_var(direc,file,"swe") if (scenario == "historical"): swe_inc, elev_inc = swe_elevation_mean(lats,lons,swe,datess,elev_corr_info,basin,scenario) else: swe1,swe2,swe3,elev1,elev2,elev3 = swe_elevation_mean(lats,lons,swe,datess,elev_corr_info,basin,scenario) ##################### plot ############################ import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt import os import statsmodels.api as sm plt.figure(figsize=(16,4)) lw=2.0 al=0.7 if (scenario == "historical"):
def swe_elevation_mean(lats, lons, swe, datess, elev_corr_info, basin, scenario): import numpy as np import math from snowpack_functions import unpack_netcdf_file_var, get_elev_for_lat_lon, mask_latlon, lat_lon_adjust ## get historical SWE for model so that historical mean can be determined for mask direc = '/raid9/gergel/agg_snowpack/goodleap/%s' % basin file_hist = 'SWE_ensavg_%s_%s.nc' % ("historical", basin) file = 'SWE_ensavg_%s_%s.nc' % (scenario, basin) lats_hist, lons_hist, swe_hist, datess_hist = unpack_netcdf_file_var( direc, file_hist, "swe") ## list for latitude and longitude values included in the historical mean mask lats_lons_inc_in_mask = list() ## initialize lists for storing grid cell elevations if (scenario == "historical"): swe_inc = list() elev_inc = list() else: swe_1 = list() elev_1 = list() swe_2 = list() elev_2 = list() swe_3 = list() elev_3 = list() count = 0 ################# loop through array and get latitude, longitude and swe values for each ############# for j in np.arange(len(lats)): ### loop over latitude for k in np.arange(len(lons)): ### loop over longitude ### don't calculate area for missing value elements ### isnan will convert masked values to nan's, so this statement will evaluate to false if ### the value exists (and thus is not masked) historical_mean_swe = 0 ## calculate historical mean SWE for grid cell if (math.isnan(swe[0, j, k]) == False): if_in_box = mask_latlon(lats[j], lons[k], basin) adjust_mask = lat_lon_adjust(lats[j], lons[k], basin) if if_in_box and adjust_mask: historical_sum_swe = 0 for year in np.arange(len(swe_hist)): historical_sum_swe += swe_hist[year, j, k] historical_mean_swe = historical_sum_swe / len(swe_hist) if (historical_mean_swe >= 10): count += 1 ## get elevation of grid cell elevation_individual_gridcell = get_elev_for_lat_lon( elev_corr_info, lats[j], lons[k]) ## add swe and elevation values to lists depending on scenario if (scenario == "historical"): sum_swe = 0 for year in np.arange( len(swe)): ## calculate mean swe sum_swe += swe[year, j, k] mean_swe = sum_swe / len(swe) mean_swe = mean_swe * 0.001 # convert mm to meters swe_inc.append(mean_swe) elev_inc.append(elevation_individual_gridcell) else: sum_swe = 0 for year in np.arange(4, 34): sum_swe += swe[year, j, k] mean_swe = sum_swe / len(np.arange(4, 33)) mean_swe = mean_swe * 0.001 # convert mm to meters swe_1.append(mean_swe) elev_1.append(elevation_individual_gridcell) sum_swe = 0 for year in np.arange(34, 64): sum_swe += swe[year, j, k] mean_swe = sum_swe / len(np.arange(4, 33)) mean_swe = mean_swe * 0.001 # convert mm to meters swe_2.append(mean_swe) elev_2.append(elevation_individual_gridcell) sum_swe = 0 for year in np.arange(64, 94): sum_swe += swe[year, j, k] mean_swe = sum_swe / len(np.arange(4, 33)) mean_swe = mean_swe * 0.001 # convert mm to meters swe_3.append(mean_swe) elev_3.append(elevation_individual_gridcell) print(count) ##### save arrays to files for a multimodel average (and for spatial plots with lats and lons) ## define path based on scenario filearrayname = '/raid9/gergel/agg_snowpack/elevations/ensavg_%s_%s.npz' % ( basin, scenario) if (scenario == "historical"): np.savez(filearrayname, swe=np.asarray(swe_inc), elevations=np.asarray(elev_inc)) return (swe_inc, elev_inc) else: np.savez(filearrayname, swe1=np.asarray(swe_1), swe2=np.asarray(swe_2), swe3=np.asarray(swe_3), elev1=np.asarray(elev_1), elev2=np.asarray(elev_2), elev3=np.asarray(elev_3)) return (swe_1, swe_2, swe_3, elev_1, elev_2, elev_3)
return (swe_1, swe_2, swe_3, elev_1, elev_2, elev_3) ################################################ BEGIN LOESS ANALYSIS ######################################### import numpy as np import sys from snowpack_functions import unpack_netcdf_file_var, import_gridcell_elevation ## get command line arguments args = sys.argv[1:] basin = args[0] scenario = args[1] soil_file = '/raid9/gergel/agg_snowpack/soil_avail.txt' elev_corr_info = import_gridcell_elevation(soil_file) direc = '/raid9/gergel/agg_snowpack/goodleap/%s' % basin file = 'SWE_ensavg_%s_%s.nc' % (scenario, basin) lats, lons, swe, datess = unpack_netcdf_file_var(direc, file, "swe") if (scenario == "historical"): swe_inc, elev_inc = swe_elevation_mean(lats, lons, swe, datess, elev_corr_info, basin, scenario) else: swe1, swe2, swe3, elev1, elev2, elev3 = swe_elevation_mean( lats, lons, swe, datess, elev_corr_info, basin, scenario) ##################### plot ############################ import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt import os import statsmodels.api as sm plt.figure(figsize=(16, 4)) lw = 2.0
# filename_hist = 'vic_TotalSoilMoist_%s_%s_%s_%s_WUSA_monthly_monmean.nc' % (model,modnum,"historical","1950_2005") direc = '/raid9/gergel/agg_snowpack/goodleap/%s' % basin if (variable == "TotalSoilMoist"): filename_hist = '%s__%s.monmean.TotalSoilMoist.%s_%s_summer.nc' % ( model, "historical", "1950_2005", basin) filename = '%s__%s.monmean.TotalSoilMoist.%s_%s_summer.nc' % ( model, scenario, years, basin) else: filename_hist = '%s__%s.%s.%s.%s_%s_%s.nc' % ( model, "historical", monthcalc, variable, "1950_2005", basin, season) filename = '%s__%s.%s.%s.%s_%s_%s.nc' % (model, scenario, monthcalc, variable, years, basin, season) ## load data if (variable == "TotalSoilMoist"): lats, lons, sm_hist, datess_hist = unpack_netcdf_file_var( direc, filename_hist, "TotalSoilMoist") lats, lons, sm, datess = unpack_netcdf_file_var(direc, filename, "TotalSoilMoist") else: print(os.path.join(direc, filename_hist)) print(os.path.join(direc, filename)) lats, lons, sm_hist, datess_hist = unpack_netcdf_file_var( direc, filename_hist, variable) lats, lons, sm, datess = unpack_netcdf_file_var(direc, filename, variable) ## load historical mean SWE file and get mask direc = '/raid9/gergel/agg_snowpack/goodleap/SWE' filename = 'histmeanmask.nc' ## True where hist mean swe > 10 mm filename_lowlands = 'histmeanmask_lowlands.nc' ## True where hist mean swe < 10 mm lats_swe, lons_swe, hist_swe, datess_swe = unpack_netcdf_file_var( direc, filename, "swe")
#if (basin == "missouri") or (basin == "coastalsouth") or (basin == "lower_colorado") or ("basin == nwinterior") or ("basin == great_basin"): # direc = '/raid9/gergel/agg_snowpack/is_summ/%s_%s_%s_monthly.rec' % (model,modnum,scenario) # hist_direc = '/raid9/gergel/agg_snowpack/is_summ/%s_%s_%s_monthly.rec' % (model,modnum,"historical") # filename = 'vic_TotalSoilMoist_%s_%s_%s_%s_WUSA_monthly_monmean.nc' % (model,modnum,scenario,years) # filename_hist = 'vic_TotalSoilMoist_%s_%s_%s_%s_WUSA_monthly_monmean.nc' % (model,modnum,"historical","1950_2005") direc = '/raid9/gergel/agg_snowpack/goodleap/%s' %basin if (variable == "TotalSoilMoist"): filename_hist = '%s__%s.monmean.TotalSoilMoist.%s_%s_summer.nc' % (model,"historical","1950_2005",basin) filename = '%s__%s.monmean.TotalSoilMoist.%s_%s_summer.nc' % (model,scenario,years,basin) else: filename_hist = '%s__%s.%s.%s.%s_%s_%s.nc' % (model,"historical",monthcalc,variable,"1950_2005",basin,season) filename = '%s__%s.%s.%s.%s_%s_%s.nc' % (model,scenario,monthcalc,variable,years,basin,season) ## load data if (variable == "TotalSoilMoist"): lats,lons,sm_hist,datess_hist = unpack_netcdf_file_var(direc,filename_hist,"TotalSoilMoist") lats,lons,sm,datess = unpack_netcdf_file_var(direc,filename,"TotalSoilMoist") else: print(os.path.join(direc,filename_hist)) print(os.path.join(direc,filename)) lats,lons,sm_hist,datess_hist = unpack_netcdf_file_var(direc,filename_hist,variable) lats,lons,sm,datess = unpack_netcdf_file_var(direc,filename,variable) ## load historical mean SWE file and get mask direc = '/raid9/gergel/agg_snowpack/goodleap/SWE' filename = 'histmeanmask.nc' ## True where hist mean swe > 10 mm filename_lowlands = 'histmeanmask_lowlands.nc' ## True where hist mean swe < 10 mm lats_swe,lons_swe,hist_swe,datess_swe = unpack_netcdf_file_var(direc,filename,"swe") hist_swe_mod = create_mask_mtn_ranges(hist_swe,lats_swe,lons_swe) lats_swe,lons_swe,hist_noswe,datess_swe = unpack_netcdf_file_var(direc,filename_lowlands,"swe")
file_tasmin = 'tasmin_ensavg_%s_%s.nc' %(scenario,basin) file_pr = 'pr_ensavg_%s_%s.nc' %(scenario,basin) else: if (scenario == "historical"): file_swe = '%s__%s.monday1.SWE.1950_2005_%s.nc' %(model,scenario,basin) file_tasmax = '%s__%s.monmean.tasmax.1950_2005_%s.nc' %(model,scenario,basin) file_tasmin = '%s__%s.monmean.tasmin.1950_2005_%s.nc' %(model,scenario,basin) file_pr = '%s__%s.monsum.pr.1950_2005_%s.nc' %(model,scenario,basin) else: file_swe = '%s__%s.monday1.SWE.2006_2099_%s.nc' %(model,scenario,basin) file_tasmax = '%s__%s.monmean.tasmax.2006_2099_%s.nc' %(model,scenario,basin) file_tasmin = '%s__%s.monmean.tasmin.2006_2099_%s.nc' %(model,scenario,basin) file_pr = '%s__%s.monsum.pr.2006_2099_%s.nc' %(model,scenario,basin) print(direc) print(file_swe) lats, lons, swe, datess_swe = unpack_netcdf_file_var(direc,file_swe,"swe") lats, lons, temp_max, datess_temp = unpack_netcdf_file_var(direc,file_tasmax,"air_temp_max") lats, lons, temp_min, datess_temp = unpack_netcdf_file_var(direc,file_tasmin,"air_temp_min") lats, lons, precip, datess_precip = unpack_netcdf_file_var(direc,file_pr,"pr") ## adjust data for hydro years precip = precip[3:-2,:,:] swe = swe[1:,:,:] temp_max = temp_max[3:-2,:,:] temp_min = temp_min[3:-2,:,:] datess_swe = datess_swe[1:] datess_precip = datess_precip[3:-2] ## get historical SWE data to determine which lats/lons to include in analysis lats, lons, swe_hist, datess_swe_hist = unpack_netcdf_gen("SWE", basin, "historical")
#!/bin/python import numpy as np import sys import os import math from snowpack_functions import import_gridcell_elevation, get_elev_for_lat_lon, lat_lon_adjust, unpack_netcdf_swe_month, mask_latlon, unpack_netcdf_file_var, historical_sum_swe import pandas as pd ## get command line arguments args = sys.argv[1:] basin = args[0] scenario = args[1] chunk = args[2] direc = '/raid9/gergel/agg_snowpack/goodleap/%s' % basin file_swe = 'SWE_ensavg_%s_%s.nc' % (scenario, basin) lats, lons, swe, datess = unpack_netcdf_file_var(direc, file_swe, "swe") soil_file = '/raid9/gergel/agg_snowpack/soil_avail.txt' elev_corr_info = import_gridcell_elevation(soil_file) ## step 1: load data sources ## PET: all three: NatVeg, Short, Tall ## AET: evaporation plus transpiration ## compare pet and aet from VIC (then see about computing aet using pm reference et) pet_agg = list() aet_agg = list() lats_inc = list() lons_inc = list() coms = list() elevs = list()
if (type == "ensavg"): scenario = args[2] else: model = args[2] scenario = args[3] direc = '/raid9/gergel/agg_snowpack/goodleap/%s' %basin if (type == "ensavg"): file_swe = 'SWE_ensavg_%s_%s.nc' %(scenario,basin) else: if (scenario == "historical"): file_swe = '%s__%s.monday1.SWE.1950_2005_%s.nc' %(model,scenario,basin) else: file_swe = '%s__%s.monday1.SWE.2006_2099_%s.nc' %(model,scenario,basin) lats,lons,swe,datess_swe = unpack_netcdf_file_var(direc,file_swe,"swe") resol=0.0625 swe_yearly_agg = np.ndarray(shape = (len(swe),1), dtype=float) sm_yearly_agg_mar = np.ndarray(shape = (len(swe),1),dtype=float) sm_yearly_agg_aug = np.ndarray(shape = (len(swe),1),dtype=float) ## get historical data for soil moisture to be done if (type == "ensavg"): ## historical file names file_sm_mar_hist = 'TotalSoilMoist_ensavg_%s_%s_march.nc' %("historical",basin) file_sm_aug_hist = 'TotalSoilMoist_ensavg_%s_%s_august.nc' %("historical",basin) ## other filenames file_sm_mar = 'TotalSoilMoist_ensavg_%s_%s_march.nc' %(scenario,basin) file_sm_aug = 'TotalSoilMoist_ensavg_%s_%s_august.nc' %(scenario,basin)
file_tasmax = '%s__%s.monmean.tasmax.1950_2005_%s.nc' % ( model, scenario, basin) file_tasmin = '%s__%s.monmean.tasmin.1950_2005_%s.nc' % ( model, scenario, basin) file_pr = '%s__%s.monsum.pr.1950_2005_%s.nc' % (model, scenario, basin) else: file_swe = '%s__%s.monday1.SWE.2006_2099_%s.nc' % (model, scenario, basin) file_tasmax = '%s__%s.monmean.tasmax.2006_2099_%s.nc' % ( model, scenario, basin) file_tasmin = '%s__%s.monmean.tasmin.2006_2099_%s.nc' % ( model, scenario, basin) file_pr = '%s__%s.monsum.pr.2006_2099_%s.nc' % (model, scenario, basin) print(direc) print(file_swe) lats, lons, swe, datess_swe = unpack_netcdf_file_var(direc, file_swe, "swe") lats, lons, temp_max, datess_temp = unpack_netcdf_file_var( direc, file_tasmax, "air_temp_max") lats, lons, temp_min, datess_temp = unpack_netcdf_file_var( direc, file_tasmin, "air_temp_min") lats, lons, precip, datess_precip = unpack_netcdf_file_var( direc, file_pr, "pr") ## adjust data for hydro years precip = precip[3:-2, :, :] swe = swe[1:, :, :] temp_max = temp_max[3:-2, :, :] temp_min = temp_min[3:-2, :, :] datess_swe = datess_swe[1:] datess_precip = datess_precip[3:-2]
else: model = args[2] scenario = args[3] direc = '/raid9/gergel/agg_snowpack/goodleap/%s' % basin if (type == "ensavg"): file_swe = 'SWE_ensavg_%s_%s.nc' % (scenario, basin) else: if (scenario == "historical"): file_swe = '%s__%s.monday1.SWE.1950_2005_%s.nc' % (model, scenario, basin) else: file_swe = '%s__%s.monday1.SWE.2006_2099_%s.nc' % (model, scenario, basin) lats, lons, swe, datess_swe = unpack_netcdf_file_var(direc, file_swe, "swe") resol = 0.0625 swe_yearly_agg = np.ndarray(shape=(len(swe), 1), dtype=float) sm_yearly_agg_mar = np.ndarray(shape=(len(swe), 1), dtype=float) sm_yearly_agg_aug = np.ndarray(shape=(len(swe), 1), dtype=float) ## get historical data for soil moisture to be done if (type == "ensavg"): ## historical file names file_sm_mar_hist = 'TotalSoilMoist_ensavg_%s_%s_march.nc' % ("historical", basin) file_sm_aug_hist = 'TotalSoilMoist_ensavg_%s_%s_august.nc' % ("historical", basin) ## other filenames file_sm_mar = 'TotalSoilMoist_ensavg_%s_%s_march.nc' % (scenario, basin)
import numpy as np import os import math import sys args = sys.argv[1:] variable = args[0] chunk = args[1] scenario = args[2] basin = args[3] ## get data direc = '/raid9/gergel/agg_snowpack/climatology/data/' filename = '%s_ensavg_%s_%s_%s.nc' %("pr",scenario,basin,chunk) lats,lons,var,datess = unpack_netcdf_file_var(direc,filename,"pr") filename = '%s_ensavg_%s_%s_%s.nc' %("tasmax",scenario,basin,chunk) lats,lons,var_max,datess = unpack_netcdf_file_var(direc,filename,"air_temp_max") filename = '%s_ensavg_%s_%s_%s.nc' %("tasmin",scenario,basin,chunk) lats,lons,var_min,datess = unpack_netcdf_file_var(direc,filename,"air_temp_min") var_series = list() lats_inc = list() lons_inc = list() ## process data for j in np.arange(len(lats)): ## loop over latitude for k in np.arange(len(lons)): ## loop over longitude if (math.isnan(var[0,j,k])) == False: #if_in_box = mask_latlon(lats[j],lons[k],basin) #adjust_mask = lat_lon_adjust(lats[j],lons[k],basin) if_in_box = mask_out_other_mtns(lats[j],lons[k])