Skip to content

Commit c658d84

Browse files
committed
Tutorial updates to support opening files remotely from cloud instance
1 parent 7332cdf commit c658d84

10 files changed

Lines changed: 249 additions & 79 deletions

Intro_to_PO_Tutorials/Geostrophic_balance.ipynb

Lines changed: 33 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"metadata": {},
66
"source": [
77
"# Part 1: Geostrophic balance\n",
8-
"Andrew Delman, updated 2024-04-04.\n",
8+
"Andrew Delman, updated 2024-04-10.\n",
99
"\n",
1010
"## Objectives\n",
1111
"\n",
@@ -485,18 +485,18 @@
485485
" \"ECCO_L4_DENS_STRAT_PRESS_LLC0090GRID_DAILY_V4R4\"]\n",
486486
"ShortNames_grid_list = [\"ECCO_L4_GEOMETRY_LLC0090GRID_V4R4\"]\n",
487487
"if incloud_access == True:\n",
488-
" files_dict = ecco_podaac_s3_get_diskaware(ShortNames=ShortNames_monthly_list,\\\n",
489-
" StartDate='2000-01',EndDate='2000-01',\\\n",
490-
" max_avail_frac=0.5,\\\n",
491-
" download_root_dir=download_root_dir)\n",
492-
" files_dict = ecco_podaac_s3_get_diskaware(ShortNames=ShortNames_daily_list,\\\n",
493-
" StartDate='2000-01-01',EndDate='2000-01-01',\\\n",
494-
" max_avail_frac=0.5,\\\n",
495-
" download_root_dir=download_root_dir)\n",
496-
" files_dict = ecco_podaac_s3_get_diskaware(ShortNames=ShortNames_grid_list,\\\n",
497-
" StartDate='1992',EndDate='2017',\\\n",
498-
" max_avail_frac=0.5,\\\n",
499-
" download_root_dir=download_root_dir)"
488+
" files_monthly_dict = ecco_podaac_s3_get_diskaware(ShortNames=ShortNames_monthly_list,\\\n",
489+
" StartDate='2000-01',EndDate='2000-01',\\\n",
490+
" max_avail_frac=0.5,\\\n",
491+
" download_root_dir=download_root_dir)\n",
492+
" files_daily_dict = ecco_podaac_s3_get_diskaware(ShortNames=ShortNames_daily_list,\\\n",
493+
" StartDate='2000-01-01',EndDate='2000-01-01',\\\n",
494+
" max_avail_frac=0.5,\\\n",
495+
" download_root_dir=download_root_dir)\n",
496+
" files_grid_dict = ecco_podaac_s3_get_diskaware(ShortNames=ShortNames_grid_list,\\\n",
497+
" StartDate='1992',EndDate='2017',\\\n",
498+
" max_avail_frac=0.5,\\\n",
499+
" download_root_dir=download_root_dir)"
500500
]
501501
},
502502
{
@@ -544,14 +544,23 @@
544544
"import ecco_v4_py as ecco\n",
545545
"import matplotlib.pyplot as plt\n",
546546
"\n",
547+
"\n",
548+
"# set incloud_access = False if it was not set to True previously\n",
549+
"if 'files_monthly_dict' not in locals():\n",
550+
" incloud_access = False\n",
551+
"\n",
552+
"\n",
547553
"# locate files to load\n",
548554
"download_dir = join(download_root_dir,denspress_monthly_shortname)\n",
549-
"curr_denspress_files = list(glob.glob(join(download_dir,'*nc')))\n",
555+
"if incloud_access == True: \n",
556+
" curr_denspress_files = files_monthly_dict[denspress_monthly_shortname]\n",
557+
"else:\n",
558+
" curr_denspress_files = list(glob.glob(join(download_dir,'*nc')))\n",
550559
"\n",
551560
"print(f'number of files to load: {len(curr_denspress_files)}')\n",
552561
"\n",
553562
"# load file into workspace\n",
554-
"# (in this case only 1 file, but this function can load multiple netCDF files with compatible dimensions)\n",
563+
"# (in this case only 1 file, but open_mfdataset can load multiple netCDF files with compatible dimensions)\n",
555564
"ds_denspress_mo = xr.open_mfdataset(curr_denspress_files, parallel=True, data_vars='minimal',\\\n",
556565
" coords='minimal', compat='override')"
557566
]
@@ -5513,12 +5522,15 @@
55135522
"source": [
55145523
"# locate files to load\n",
55155524
"download_dir = join(download_root_dir,vel_monthly_shortname)\n",
5516-
"curr_vel_files = list(glob.glob(join(download_dir,'*nc')))\n",
5525+
"if incloud_access == True:\n",
5526+
" curr_vel_files = files_monthly_dict[vel_monthly_shortname]\n",
5527+
"else:\n",
5528+
" curr_vel_files = list(glob.glob(join(download_dir,'*nc')))\n",
55175529
"\n",
55185530
"print(f'number of files to load: {len(curr_vel_files)}')\n",
55195531
"\n",
55205532
"# load file into workspace\n",
5521-
"# (in this case only 1 file, but this function can load multiple netCDF files with compatible dimensions)\n",
5533+
"# (in this case only 1 file, but open_mfdataset can load multiple netCDF files with compatible dimensions)\n",
55225534
"ds_vel_mo = xr.open_mfdataset(curr_vel_files, parallel=True, data_vars='minimal',\\\n",
55235535
" coords='minimal', compat='override')\n",
55245536
"\n",
@@ -6144,7 +6156,10 @@
61446156
"source": [
61456157
"grid_params_shortname = \"ECCO_L4_GEOMETRY_LLC0090GRID_V4R4\"\n",
61466158
"grid_params_file = \"GRID_GEOMETRY_ECCO_V4r4_native_llc0090.nc\"\n",
6147-
"grid_params_file_path = join(download_root_dir,grid_params_shortname,grid_params_file)\n",
6159+
"if incloud_access == True:\n",
6160+
" grid_params_file_path = files_grid_dict[grid_params_shortname]\n",
6161+
"else:\n",
6162+
" grid_params_file_path = join(download_root_dir,grid_params_shortname,grid_params_file)\n",
61486163
"\n",
61496164
"# load grid parameters file\n",
61506165
"ds_grid = xr.open_dataset(grid_params_file_path)\n",

Intro_to_PO_Tutorials/Steric_height.ipynb

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -155,12 +155,18 @@
155155
"\n",
156156
"# grid parameters file\n",
157157
"grid_params_file = \"GRID_GEOMETRY_ECCO_V4r4_native_llc0090.nc\"\n",
158-
"grid_params_file_path = join(download_root_dir,grid_params_shortname,grid_params_file)\n",
158+
"if incloud_access == True:\n",
159+
" grid_params_file_path = files_dict[grid_params_shortname]\n",
160+
"else:\n",
161+
" grid_params_file_path = join(download_root_dir,grid_params_shortname,grid_params_file)\n",
159162
"ds_grid = xr.open_dataset(grid_params_file_path)\n",
160163
"\n",
161164
"# density/pressure file\n",
162-
"download_dir = join(download_root_dir,denspress_monthly_shortname)\n",
163-
"curr_denspress_file = list(glob.glob(join(download_dir,'*2000-01*.nc')))\n",
165+
"if incloud_access == True:\n",
166+
" curr_denspress_file = files_dict[denspress_monthly_shortname]\n",
167+
"else:\n",
168+
" download_dir = join(download_root_dir,denspress_monthly_shortname)\n",
169+
" curr_denspress_file = list(glob.glob(join(download_dir,'*2000-01*.nc')))\n",
164170
"ds_denspress = xr.open_dataset(curr_denspress_file[0])"
165171
]
166172
},
@@ -668,8 +674,11 @@
668674
}
669675
],
670676
"source": [
671-
"download_dir = join(download_root_dir,SSH_monthly_shortname)\n",
672-
"curr_SSH_file = list(glob.glob(join(download_dir,'*2000-01*.nc')))\n",
677+
"if incloud_access == True:\n",
678+
" curr_SSH_file = files_dict[SSH_monthly_shortname]\n",
679+
"else:\n",
680+
" download_dir = join(download_root_dir,SSH_monthly_shortname)\n",
681+
" curr_SSH_file = list(glob.glob(join(download_dir,'*2000-01*.nc')))\n",
673682
"ds_SSH = xr.open_dataset(curr_SSH_file[0])\n",
674683
"\n",
675684
"ds_SSH"
@@ -1199,8 +1208,11 @@
11991208
}
12001209
],
12011210
"source": [
1202-
"download_dir = join(download_root_dir,TS_monthly_shortname)\n",
1203-
"curr_TS_file = list(glob.glob(join(download_dir,'*2000-01*.nc')))\n",
1211+
"if incloud_access == True:\n",
1212+
" curr_TS_file = files_dict[TS_monthly_shortname]\n",
1213+
"else:\n",
1214+
" download_dir = join(download_root_dir,TS_monthly_shortname)\n",
1215+
" curr_TS_file = list(glob.glob(join(download_dir,'*2000-01*.nc')))\n",
12041216
"ds_TS = xr.open_dataset(curr_TS_file[0])\n",
12051217
"\n",
12061218
"ds_TS"

Intro_to_PO_Tutorials/Thermal_wind.ipynb

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -637,7 +637,10 @@
637637
"# density file\n",
638638
"download_root_dir = join(user_home_dir,'Downloads','ECCO_V4r4_PODAAC')\n",
639639
"download_dir = join(download_root_dir,denspress_monthly_shortname)\n",
640-
"curr_denspress_file = list(glob.glob(join(download_dir,'*2000-01*.nc')))\n",
640+
"if incloud_access == True:\n",
641+
" curr_denspress_file = files_dict[denspress_monthly_shortname]\n",
642+
"else:\n",
643+
" curr_denspress_file = list(glob.glob(join(download_dir,'*2000-01*.nc')))\n",
641644
"ds_dens = xr.open_dataset(curr_denspress_file[0])\n",
642645
"ds_dens"
643646
]
@@ -662,7 +665,10 @@
662665
"source": [
663666
"# load grid parameters file\n",
664667
"grid_params_file = \"GRID_GEOMETRY_ECCO_V4r4_native_llc0090.nc\"\n",
665-
"grid_params_file_path = join(download_root_dir,grid_params_shortname,grid_params_file)\n",
668+
"if incloud_access == True:\n",
669+
" grid_params_file_path = files_dict[grid_params_shortname]\n",
670+
"else:\n",
671+
" grid_params_file_path = join(download_root_dir,grid_params_shortname,grid_params_file)\n",
666672
"ds_grid = xr.open_dataset(grid_params_file_path)\n",
667673
"\n",
668674
"# find index closest to target latitude\n",
@@ -1169,7 +1175,10 @@
11691175
"source": [
11701176
"# load velocity dataset\n",
11711177
"download_dir = join(download_root_dir,vel_monthly_shortname)\n",
1172-
"curr_vel_file = list(glob.glob(join(download_dir,'*2000-01*.nc')))\n",
1178+
"if incloud_access == True:\n",
1179+
" curr_vel_file = files_dict[vel_monthly_shortname]\n",
1180+
"else:\n",
1181+
" curr_vel_file = list(glob.glob(join(download_dir,'*2000-01*.nc')))\n",
11731182
"ds_vel = xr.open_dataset(curr_vel_file[0])\n",
11741183
"\n",
11751184
"# interpolate velocities to center of grid cells\n",

Tutorials_as_Jupyter_Notebooks/ECCO_v4_Combining_Multiple_Datasets.ipynb

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,12 @@
110110
"outputs": [],
111111
"source": [
112112
"# load dataset containing monthly SSH in 2010\n",
113-
"ecco_dataset_A = xr.open_mfdataset(join(ECCO_dir,'*SSH*MONTHLY*','*_2010-??_*.nc'))"
113+
"if incloud_access == True:\n",
114+
" # use list comprehension to list file path(s)\n",
115+
" file_paths = [filepath for filepath in files_dict[ShortNames_list[1]] if '_2010-' in filepath]\n",
116+
" ecco_dataset_A = xr.open_mfdataset(file_paths)\n",
117+
"else:\n",
118+
" ecco_dataset_A = xr.open_mfdataset(join(ECCO_dir,'*SSH*MONTHLY*','*_2010-??_*.nc'))"
114119
]
115120
},
116121
{
@@ -220,7 +225,11 @@
220225
],
221226
"source": [
222227
"# load dataset containing monthly mean 3D temperature fluxes in 2010\n",
223-
"ecco_dataset_B = xr.open_mfdataset(join(ECCO_dir,'*3D_TEMPERATURE_FLUX_LLC0090GRID_MONTHLY*','*_2010-??_*.nc'))\n",
228+
"if incloud_access == True:\n",
229+
" file_paths = [filepath for filepath in files_dict[ShortNames_list[2]] if '_2010-' in filepath]\n",
230+
" ecco_dataset_B = xr.open_mfdataset(file_paths)\n",
231+
"else:\n",
232+
" ecco_dataset_B = xr.open_mfdataset(join(ECCO_dir,'*3D_TEMPERATURE_FLUX_LLC0090GRID_MONTHLY*','*_2010-??_*.nc'))\n",
224233
"\n",
225234
"ecco_dataset_B.data_vars"
226235
]
@@ -2490,8 +2499,11 @@
24902499
],
24912500
"source": [
24922501
"# Load the llc90 grid parameters\n",
2493-
"import glob\n",
2494-
"grid_dataset = xr.open_dataset(glob.glob(join(ECCO_dir,'*GEOMETRY*','*.nc'))[0])\n",
2502+
"if incloud_access == True:\n",
2503+
" grid_dataset = xr.open_dataset(files_dict[ShortNames_list[0]])\n",
2504+
"else:\n",
2505+
" import glob\n",
2506+
" grid_dataset = xr.open_dataset(glob.glob(join(ECCO_dir,'*GEOMETRY*','*.nc'))[0])\n",
24952507
"grid_dataset.coords"
24962508
]
24972509
},

Tutorials_as_Jupyter_Notebooks/ECCO_v4_Example_MHT.ipynb

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -392,12 +392,20 @@
392392
},
393393
"outputs": [],
394394
"source": [
395+
"## obtain file paths\n",
396+
"if incloud_access == True:\n",
397+
" grid_file_path = files_dict[ShortNames_list[0]]\n",
398+
" T_flux_file_paths = files_dict[ShortNames_list[1]]\n",
399+
"else:\n",
400+
" grid_file_path = glob.glob(join(ECCO_dir,'*GEOMETRY*','*.nc'))[0]\n",
401+
" T_flux_file_paths = join(ECCO_dir,'*3D_TEMPERATURE_FLUX*MONTHLY*','*.nc')\n",
402+
"\n",
395403
"## Load the model grid\n",
396-
"ecco_grid = xr.open_mfdataset(glob.glob(join(ECCO_dir,'*GEOMETRY*','*.nc'))[0],\\\n",
404+
"ecco_grid = xr.open_mfdataset(grid_file_path,\\\n",
397405
" chunks={'k':50,'tile':13,'j':90,'j_g':90,'i':90,'i_g':90})\n",
398406
"\n",
399407
"## Create a dataset of monthly advective and diffusive temperature fluxes, 1992-2017\n",
400-
"ecco_vars = xr.open_mfdataset(join(ECCO_dir,'*3D_TEMPERATURE_FLUX*MONTHLY*','*.nc'),\\\n",
408+
"ecco_vars = xr.open_mfdataset(T_flux_file_paths,\\\n",
401409
" chunks={'k':50,'tile':13,'j':90,'j_g':90,'i':90,'i_g':90},\\\n",
402410
" parallel=True,data_vars='minimal',coords='minimal',compat='override')\n",
403411
"\n",

Tutorials_as_Jupyter_Notebooks/ECCO_v4_Example_OSNAP.ipynb

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -376,16 +376,26 @@
376376
},
377377
"outputs": [],
378378
"source": [
379+
"## obtain file paths\n",
380+
"if incloud_access == True:\n",
381+
" grid_file_path = files_dict[ShortNames_list[0]]\n",
382+
" vol_flux_file_paths = files_dict[ShortNames_list[1]]\n",
383+
" T_flux_file_paths = files_dict[ShortNames_list[2]]\n",
384+
"else:\n",
385+
" grid_file_path = glob.glob(join(ECCO_dir,'*GEOMETRY*','*.nc'))[0]\n",
386+
" vol_flux_file_paths = join(ECCO_dir,'*_OCEAN_3D_VOLUME_FLUX*MONTHLY*','*.nc')\n",
387+
" T_flux_file_paths = join(ECCO_dir,'*_OCEAN_3D_TEMPERATURE_FLUX*MONTHLY*','*.nc')\n",
388+
"\n",
379389
"## Load the model grid\n",
380-
"ecco_grid = xr.open_mfdataset(glob.glob(join(ECCO_dir,'*GEOMETRY*','*.nc'))[0])\n",
390+
"ecco_grid = xr.open_mfdataset(grid_file_path)\n",
381391
"\n",
382392
"## Load ECCO variables\n",
383-
"ecco_vars_adv_th = xr.open_mfdataset(join(ECCO_dir,'*_OCEAN_3D_TEMPERATURE_FLUX*MONTHLY*','*.nc'),\\\n",
384-
" chunks={'k':50,'tile':13,'j':90,'j_g':90,'i':90,'i_g':90},\\\n",
385-
" parallel=True,data_vars='minimal',coords='minimal',compat='override')\n",
386-
"ecco_vars_uvw = xr.open_mfdataset(join(ECCO_dir,'*_OCEAN_3D_VOLUME_FLUX*MONTHLY*','*.nc'),\\\n",
393+
"ecco_vars_uvw = xr.open_mfdataset(vol_flux_file_paths,\\\n",
387394
" chunks={'k':50,'tile':13,'j':90,'j_g':90,'i':90,'i_g':90},\\\n",
388395
" parallel=True,data_vars='minimal',coords='minimal',compat='override')\n",
396+
"ecco_vars_adv_th = xr.open_mfdataset(T_flux_file_paths,\\\n",
397+
" chunks={'k':50,'tile':13,'j':90,'j_g':90,'i':90,'i_g':90},\\\n",
398+
" parallel=True,data_vars='minimal',coords='minimal',compat='override')\n",
389399
"\n",
390400
"ecco_vars = xr.merge((ecco_vars_adv_th[['ADVx_TH','ADVy_TH']],ecco_vars_uvw[['UVELMASS','VVELMASS']]))\n",
391401
"\n",

Tutorials_as_Jupyter_Notebooks/ECCO_v4_Example_calculations_with_scalar_quantities.ipynb

Lines changed: 37 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,10 @@
115115
"outputs": [],
116116
"source": [
117117
"## Load the model grid\n",
118-
"ecco_grid = xr.open_dataset(glob.glob(join(ECCO_dir,'*GEOMETRY*','*.nc'))[0])"
118+
"if incloud_access == True:\n",
119+
" ecco_grid = xr.open_dataset(files_dict[ShortNames_list[0]])\n",
120+
"else:\n",
121+
" ecco_grid = xr.open_dataset(glob.glob(join(ECCO_dir,'*GEOMETRY*','*.nc'))[0])"
119122
]
120123
},
121124
{
@@ -142,8 +145,12 @@
142145
"source": [
143146
"%%time\n",
144147
"## using open_mfdataset/dask\n",
145-
"ds_SSH_daily_1994 = xr.open_mfdataset(join(ECCO_dir,'*SSH*DAILY*','*_1994-*.nc'),\\\n",
146-
" compat='override',data_vars='minimal',coords='minimal')\n",
148+
"if incloud_access == True:\n",
149+
" ds_SSH_daily_1994 = xr.open_mfdataset(files_daily_dict[ShortNames_daily_list[0]],\\\n",
150+
" compat='override',data_vars='minimal',coords='minimal')\n",
151+
"else:\n",
152+
" ds_SSH_daily_1994 = xr.open_mfdataset(join(ECCO_dir,'*SSH*DAILY*','*_1994-*.nc'),\\\n",
153+
" compat='override',data_vars='minimal',coords='minimal')\n",
147154
"ds_SSH_daily_1994 = ds_SSH_daily_1994.drop_vars(['SSHNOIBC','SSHIBC','ETAN'])\n",
148155
"ecco_daily_ds = xr.merge((ecco_grid,ds_SSH_daily_1994)).compute()"
149156
]
@@ -179,8 +186,11 @@
179186
" # concatenate along dimension with name dim_concat\n",
180187
" ds_out = xr.concat((ds_out,ds_curr),dim=dim_concat)\n",
181188
" return ds_out\n",
182-
" \n",
183-
"SSH_daily_files = glob.glob(join(ECCO_dir,'*SSH*DAILY*','*_1994-*.nc'))\n",
189+
"\n",
190+
"if incloud_access == True:\n",
191+
" SSH_daily_files = files_daily_dict[ShortNames_daily_list[0]]\n",
192+
"else:\n",
193+
" SSH_daily_files = glob.glob(join(ECCO_dir,'*SSH*DAILY*','*_1994-*.nc'))\n",
184194
"ds_SSH_daily_1994 = ds_load_concat(SSH_daily_files,dim_concat='time',\\\n",
185195
" vars_to_drop=['SSHNOIBC','SSHIBC','ETAN'])\n",
186196
"ecco_daily_ds = xr.merge((ecco_grid,ds_SSH_daily_1994))"
@@ -220,8 +230,14 @@
220230
"%%time\n",
221231
"## Load monthly SSH and THETA data\n",
222232
"\n",
223-
"SSH_monthly_files_1990s = glob.glob(join(ECCO_dir,'*SSH*MONTHLY*','*_199[3-9]-*.nc'))\n",
224-
"SSH_monthly_files_2000s = glob.glob(join(ECCO_dir,'*SSH*MONTHLY*','*_20[01]?-*.nc'))\n",
233+
"if incloud_access == True:\n",
234+
" # use fnmatch to match string patterns in a list\n",
235+
" import fnmatch\n",
236+
" SSH_monthly_files_1990s = fnmatch.filter(files_dict[ShortNames_list[1]],'*_199[3-9]-*.nc')\n",
237+
" SSH_monthly_files_2000s = fnmatch.filter(files_dict[ShortNames_list[1]],'*_20[01]?-*.nc')\n",
238+
"else:\n",
239+
" SSH_monthly_files_1990s = glob.glob(join(ECCO_dir,'*SSH*MONTHLY*','*_199[3-9]-*.nc'))\n",
240+
" SSH_monthly_files_2000s = glob.glob(join(ECCO_dir,'*SSH*MONTHLY*','*_20[01]?-*.nc'))\n",
225241
"# concatenate 2 file lists\n",
226242
"SSH_monthly_files = SSH_monthly_files_1990s + SSH_monthly_files_2000s\n",
227243
"\n",
@@ -252,10 +268,20 @@
252268
],
253269
"source": [
254270
"%%time\n",
255-
"ds_TSAL_monthly_1990s = xr.open_mfdataset(join(ECCO_dir,'*TEMP_SALINITY*MONTHLY*','*_199[3-9]-*.nc'),\\\n",
256-
" compat='override',data_vars='minimal',coords='minimal')\n",
257-
"ds_TSAL_monthly_2000s = xr.open_mfdataset(join(ECCO_dir,'*TEMP_SALINITY*MONTHLY*','*_20[01]?-*.nc'),\\\n",
258-
" compat='override',data_vars='minimal',coords='minimal')\n",
271+
"\n",
272+
"if incloud_access == True:\n",
273+
" # use fnmatch to match string patterns in a list\n",
274+
" file_paths = fnmatch.filter(files_dict[ShortNames_list[2]],'*_199[3-9]-*.nc')\n",
275+
" ds_TSAL_monthly_1990s = xr.open_mfdataset(file_paths,\\\n",
276+
" compat='override',data_vars='minimal',coords='minimal')\n",
277+
" file_paths = fnmatch.filter(files_dict[ShortNames_list[2]],'*_20[01]?-*.nc')\n",
278+
" ds_TSAL_monthly_2000s = xr.open_mfdataset(file_paths,\\\n",
279+
" compat='override',data_vars='minimal',coords='minimal')\n",
280+
"else:\n",
281+
" ds_TSAL_monthly_1990s = xr.open_mfdataset(join(ECCO_dir,'*TEMP_SALINITY*MONTHLY*','*_199[3-9]-*.nc'),\\\n",
282+
" compat='override',data_vars='minimal',coords='minimal')\n",
283+
" ds_TSAL_monthly_2000s = xr.open_mfdataset(join(ECCO_dir,'*TEMP_SALINITY*MONTHLY*','*_20[01]?-*.nc'),\\\n",
284+
" compat='override',data_vars='minimal',coords='minimal')\n",
259285
"# concatenate 2 datasets\n",
260286
"ds_THETA_monthly = xr.concat((ds_TSAL_monthly_1990s.drop_vars('SALT'),\\\n",
261287
" ds_TSAL_monthly_2000s.drop_vars('SALT')),dim='time')\n",

0 commit comments

Comments
 (0)