コード例 #1
0
obs_seasonal_phases  = obs_data.variables['seasonal_max_phase'][:]
model_seasonal_waveforms = model_data.variables['seasonal_waveform'][:]
model_seasonal_amplitudes  = model_data.variables['seasonal_amplitude'][:]
model_seasonal_phases  = model_data.variables['seasonal_max_phase'][:] 

test = obs_seasonal_waveforms < 0
obs_seasonal_waveforms[test] = np.NaN

test = obs_seasonal_amplitudes < 0
obs_seasonal_amplitudes[test] = np.NaN

test = model_seasonal_waveforms < 0
model_seasonal_waveforms[test] = np.NaN

area_boundaries,area_tags,area_labels = modules.area_dicts()
tags = modules.get_tags(refs)

areas = ['ANT','S_O','AF','N_O','S_EU','C_EU','NE_NA','ARC']

obsn_linspace = np.linspace(0, 1, len(areas))

fig, axes = plt.subplots(nrows=2, ncols=4,figsize=(19,13))
fig.patch.set_facecolor('white')
count = 0
for ax in axes.flat:
    try:
        area = areas[count]
    except:
        ax.axis('off')
        continue
コード例 #2
0
    obs_co_alt = np.append(obs_co_alt,obs_site_group.altitude)
obs_co_date = obs_site_group.variables['date'][:]
obs_co_time = obs_site_group.variables['time'][:]

for i in range(len(obs_o3_refs)):
    obs_o3_refs[i] = obs_o3_refs[i].lower()
    
for i in range(len(obs_no2_refs)):
    obs_no2_refs[i] = obs_no2_refs[i].lower()
    
for i in range(len(obs_co_refs)):
    obs_co_refs[i] = obs_co_refs[i].lower()

#get observational location tags 
#EU = europe, AF = africa, NA  = north america, SA = south america, ANT = antarctica, ARC = arctic, O = oceanic, OC = oceania, AS = asia
obs_o3_tags = modules.get_tags(obs_o3_refs)
obs_no2_tags = modules.get_tags(obs_no2_refs)
obs_co_tags = modules.get_tags(obs_co_refs)

obs_o3_data = np.array(obs_o3_data)
obs_no2_data = np.array(obs_no2_data)
obs_co_data = np.array(obs_co_data)

#convert all -99999's to nans
test = obs_o3_data == -99999
obs_o3_data[test] = np.NaN
test = obs_no2_data == -99999
obs_no2_data[test] = np.NaN
test = obs_co_data == -99999
obs_co_data[test] = np.NaN
コード例 #3
0
#get species from current directory
present_dir = os.getcwd()
obs_fname,species,start_year,end_year,vres,timeres = modules.get_obs_info(present_dir)
model_fname,species,start_year,end_year = modules.get_model_info(present_dir)

obs_refs,obs_raw_time,obs_ref_time,obs_datetime_time,obs_std_var,obs_lats,obs_lons,obs_alt,obs_gap_inds = modules.read_obs_all(obs_fname,species,start_year,end_year)
model_raw_time,model_ref_time,model_datetime_time,model_std_var,lat_e,lon_e,lat_c,lon_c,grid_size,gridbox_count = modules.read_model_all(model_fname,species,start_year,end_year)

#get obs lat_lon grid central points
obs_lats_centre, obs_lons_centre, model_indices = modules.grid_obs_centre_convergance(lat_e,lon_e,obs_lats,obs_lons) 


#get observational location tags 
#EU = europe, AF = africa, NA  = north america, SA = south america, ANT = antarctica, ARC = arctic, O = oceanic, OC = oceania, AS = asia
tags = modules.get_tags(np.copy(obs_refs))

#--------------------------------------------------------
#load in periodic lsp data
obs_period_grp = Dataset('../obs_%s_%s/obs_sig_periods.nc'%(vres,timeres))
model_period_grp = Dataset('model_sig_periods.nc')

obs_daily_waveforms = []
obs_seasonal_waveforms = []
model_daily_waveforms = []
model_seasonal_waveforms = []
obs_seasonal_amp = []
model_seasonal_amp = []

for ref in obs_refs:
    site_group_obs = obs_period_grp.groups[ref]
コード例 #4
0
fig.patch.set_facecolor('white')

#m = Basemap(projection='cyl',llcrnrlat=-90,urcrnrlat=90,\
#                      llcrnrlon=-180,\
#                      urcrnrlon=180,\
#                      resolution='c')

m = Basemap(projection='moll',lon_0 = 0,resolution='c')
     
m.fillcontinents(color='#cc9966',lake_color='#99ffff',alpha=0.7,zorder=0.5)
m.drawmapboundary(fill_color='#99ffff')
                                                                                                                                                                                                     
color_dict = {'GAW':'Crimson','EMEP':'pink','CASTNET':'blue','NAPS':'purple','AQS':'orange','CAPMON':'yellow','EANET':'green','AIRBASE':'black'}
zorders = {'GAW':4,'EMEP':2,'CASTNET':2,'NAPS':3,'AQS':1,'CAPMON':5,'EANET':6,'AIRBASE':1}

tags = modules.get_tags(valid_refs)
cut = (tags == 'O')
print valid_refs[cut]
cut = (tags == 'AF')
print valid_refs[cut]
cut = (tags == 'OC')
print valid_refs[cut]
cut = (tags == 'SA')
print valid_refs[cut]

for site_ref in valid_refs:
    site_group = root_grp.groups[site_ref]
   
    obs_lat = site_group.latitude
    obs_lon = site_group.longitude
    obs_group = site_group.process_group
コード例 #5
0
        minute_val.append(0)
    elif np.float64(time) == 30:
        hour_val.append(0)
        minute_val.append(30)
    else:
        hour_val.append(int(time[0:-2]))
        minute_val.append(int(time[-2:]))

obs_datetimes = [datetime.datetime(year = year_val[i], month = month_val[i], day = day_val[i], hour = hour_val[i], minute = minute_val[i]) for i in range(len(year_val))]

#get obs lat_lon grid central points
obs_lats_centre, obs_lons_centre, model_indices = modules.grid_obs_centre_convergance(lat_e,lon_e,obs_lats,obs_lons) 

#get observational location tags 
#EU = europe, AF = africa, NA  = north america, SA = south america, ANT = antarctica, ARC = arctic, O = oceanic, OC = oceania, AS = asia
tags = modules.get_tags(obs_refs)

#--------------------------------------------------------
#load in periodic lsp data
root_grp_obs = Dataset('../obs/obs_sig_periods.nc')
root_grp_mod = Dataset('model_sig_periods.nc')

model_daily_mag = []
model_daily_phase = []
obs_daily_mag = []
obs_daily_phase = []
model_ave = []
obs_ave = []
model_seasonal_mag = []
model_seasonal_phase = []
obs_seasonal_mag = []
コード例 #6
0
end_year = 2011

#read in obs ts data
obs_fname = '/work/home/db876/observations/surface/%s/process/GLOBAL_SURFACE_%s_2009_2011_H_HP.nc' % (
    species, species)
obs_refs, raw_time, ref_time, datetime_time, std_var, obs_lats, obs_lons, obs_alt, obs_groups, obs_raw_class, obs_anthrome_class, gap_inds = modules.read_obs_all(
    obs_fname, species, start_year, end_year)

#read in std model data
model_fname = '/work/home/db876/plotting_tools/model_files/GEOSCHEM_SURFACE_2009_2011_v1001_4x5_GEOS5_H_STD.nc'
model_raw_time, model_ref_time, model_datetime_time, model_std_var, lat_e, lon_e, lat_c, lon_c, grid_size, gridbox_count = modules.read_model_all(
    model_fname, species, start_year, end_year)

#get observational location tags
#EU = europe, AF = africa, NA  = north america, SA = south america, ANT = antarctica, ARC = arctic, O = oceanic, OC = oceania, AS = asia
tags = modules.get_tags(obs_refs)

#--------------------------------------------------------
#load in periodic lsp data

obs_grp = Dataset('../obs_SURFACE_H/LSP_stats.nc')

alt_model_dirs_a = [
    'GEOSCHEM_SURFACE_v1001_4x5_GEOS5_H_NOX0.25ANMVOC0.25',
    'GEOSCHEM_SURFACE_v1001_4x5_GEOS5_H_NOX0.25ANMVOC0.5',
    'GEOSCHEM_SURFACE_v1001_4x5_GEOS5_H_NOX0.25NMVOC1.0',
    'GEOSCHEM_SURFACE_v1001_4x5_GEOS5_H_NOX0.25ANMVOC2.0',
    'GEOSCHEM_SURFACE_v1001_4x5_GEOS5_H_NOX0.25ANMVOC4.0',
    'GEOSCHEM_SURFACE_v1001_4x5_GEOS5_H_NOX0.5ANMVOC0.25',
    'GEOSCHEM_SURFACE_v1001_4x5_GEOS5_H_NOX0.5ANMVOC0.5',
    'GEOSCHEM_SURFACE_v1001_4x5_GEOS5_H_NOX0.5NMVOC1.0',
コード例 #7
0
#get species from current directory
present_dir = os.getcwd()
obs_fname, species, start_year, end_year, vres, timeres = modules.get_obs_info(
    present_dir)
model_fname, species, start_year, end_year = modules.get_model_info(
    present_dir)

obs_refs, obs_raw_time, obs_ref_time, obs_datetime_time, obs_std_var, obs_lats, obs_lons, obs_alt, obs_process_groups, obs_gap_inds = modules.read_obs_all(
    obs_fname, species, start_year, end_year)
model_raw_time, model_ref_time, model_datetime_time, model_std_var, lat_e, lon_e, lat_c, lon_c, grid_size, gridbox_count = modules.read_model_all(
    model_fname, species, start_year, end_year)

#get observational location tags
#EU = europe, AF = africa, NA  = north america, SA = south america, ANT = antarctica, ARC = arctic, O = oceanic, OC = oceania, AS = asia
tags = modules.get_tags(np.copy(obs_refs))

#--------------------------------------------------------
#load in periodic lsp data
obs_period_grp = Dataset('../obs_%s_%s/obs_sig_periods.nc' % (vres, timeres))
model_period_grp = Dataset('model_sig_periods.nc')

obs_daily_waveforms = []
obs_seasonal_waveforms = []
model_daily_waveforms = []
model_seasonal_waveforms = []
obs_seasonal_amp = []
model_seasonal_amp = []

for ref in obs_refs:
    site_group_obs = obs_period_grp.groups[ref]
コード例 #8
0
    obs_no2_refs[i] = obs_no2_refs[i].lower()

for i in range(len(obs_co_refs)):
    obs_co_refs[i] = obs_co_refs[i].lower()

#get obs lat_lon grid central points
obs_o3_lats_centre, obs_o3_lons_centre, model_o3_indices = modules.grid_obs_centre_convergance(
    lat_e, lon_e, obs_o3_lats, obs_o3_lons)
obs_no2_lats_centre, obs_no2_lons_centre, model_no2_indices = modules.grid_obs_centre_convergance(
    lat_e, lon_e, obs_no2_lats, obs_no2_lons)
obs_co_lats_centre, obs_co_lons_centre, model_co_indices = modules.grid_obs_centre_convergance(
    lat_e, lon_e, obs_co_lats, obs_co_lons)

#get observational location tags
#EU = europe, AF = africa, NA  = north america, SA = south america, ANT = antarctica, ARC = arctic, O = oceanic, OC = oceania, AS = asia
obs_o3_tags = modules.get_tags(obs_o3_refs)
obs_no2_tags = modules.get_tags(obs_no2_refs)
obs_co_tags = modules.get_tags(obs_co_refs)

#cut model data
model_o3_data = model_o3_var[:, model_o3_indices[:, 0], model_o3_indices[:, 1]]
model_no2_data = model_no2_var[:, model_no2_indices[:, 0],
                               model_no2_indices[:, 1]]
model_co_data = model_co_var[:, model_co_indices[:, 0], model_co_indices[:, 1]]

obs_o3_data = np.array(obs_o3_data)
obs_no2_data = np.array(obs_no2_data)
obs_co_data = np.array(obs_co_data)

#convert all -99999's to nans
test = obs_o3_data == -99999
コード例 #9
0
    obs_lons_o3 = np.append(obs_lons_o3,obs_site_group.longitude)
    obs_alt_o3 = np.append(obs_alt_o3,obs_site_group.altitude)
    obs_date = obs_site_group.variables['date'][:]
    obs_time = obs_site_group.variables['time'][:]
obs_date = obs_site_group.variables['date'][:]
obs_time = obs_site_group.variables['time'][:]

for i in range(len(obs_refs_o3)):
    obs_refs_o3[i] = obs_refs_o3[i].lower()

#get obs lat_lon grid central points
obs_lats_centre, obs_lons_centre, geoschem_model_indices = modules.grid_obs_centre_convergance(geoschem_lat_e,geoschem_lon_e,obs_lats_o3,obs_lons_o3)

#get observational location tags 
#EU = europe, AF = africa, NA  = north america, SA = south america, ANT = antarctica, ARC = arctic, O = oceanic, OC = oceania, AS = asia
tags_o3 = modules.get_tags(obs_refs_o3)

#cut model data
geoschem_o3 = geoschem_o3[:,geoschem_model_indices[:,0],geoschem_model_indices[:,1]]

obs_o3 = np.array(obs_o3)
#--------------------------------------------------
areas = ['ANT','S_O','OC','AF','SA','NE_NA','CE_NA','SE_NA','S_NA','SW_NA','NW_NA','C_NA','S_EU','C_EU','NW_EU','N_EU','E_EU','NE_AS','SE_AS','C_AS','S_AS','N_O','AL','ARC']

area_boundaries,area_tags,area_labels = modules.area_dicts()

fig, axes = plt.subplots(nrows=5, ncols=5,figsize=(19,13))
fig.patch.set_facecolor('white')
count = 0

all_dates = []
コード例 #10
0
    'NW_NA': 'pink',
    'NE_NA': 'darkblue',
    'CE_NA': 'orange',
    'SE_NA': 'green',
    'C_NA': 'yellow',
    'S_EU': 'black',
    'SW_EU': 'magenta',
    'CW_EU': 'brown',
    'CS_EU': 'orangered',
    'C_EU': 'lightskyblue',
    'E_EU': 'limegreen',
    'NW_EU': 'purple',
    'N_EU': 'darkgreen'
}

tags = modules.get_tags(valid_refs)
area_boundaries, area_tags, area_labels = modules.area_dicts()

for i in range(len(valid_refs)):
    site_ref = valid_refs[i]

    site_group = root_grp.groups[site_ref]

    obs_lat = site_group.latitude
    obs_lon = site_group.longitude

    tag = tags[i]

    obs_area = modules.get_area(area_boundaries, tag, obs_lat, obs_lon,
                                site_ref)