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 
Esempio n. 2
0
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") 
Esempio n. 10
0
	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")
Esempio n. 11
0
#!/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()
Esempio n. 12
0
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)
Esempio n. 13
0
        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]
Esempio n. 14
0
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])