Skip to content

Commit 91fb4ee

Browse files
committed
Proof reading
1 parent 04618fe commit 91fb4ee

File tree

2 files changed

+29
-31
lines changed

2 files changed

+29
-31
lines changed

ocean-colour-sea-surface-temperature.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
"source": [
4545
"## Learning objectives 🎯\n",
4646
"\n",
47-
"This tutorial provides a practical introduction to daily **Ocean Colour (OC)** data (available from 1997 onward) and **Sea Surface Temperature (SST)** data (available from 1981 to 2016), both derived from satellite observations of the global ocean.\n",
47+
"This tutorial provides a practical introduction to daily **Ocean Colour (OC)** data (available from 1997 onwards) and **Sea Surface Temperature (SST)** data (available from 1981 to 2016), both derived from satellite observations of the global ocean.\n",
4848
"\n",
4949
"These datasets are freely accessible from the Climate Data Store (CDS) with a registered account.\n",
5050
"\n",

viewer-for-sealevel-product.ipynb

Lines changed: 28 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,7 @@
3636
"source": [
3737
"## Learning objectives 🎯\n",
3838
"\n",
39-
"This notebook-tutorial provides a practical introduction to the Sea level gridded data from satellite observations for the global ocean from 1993 to present data available at the Climate Data Store (CDS). These datasets contain data for Essential Climate Variables (ECVs) Sea Level, as well as Surface Currents (the latter only in the daily dataset). We give a short introduction to the Sea level data and to their derived surface currents. We provide two use cases of the datasets: plot the monthly Sea Level data during an El Niño event (Use Case 1), plot the Sea Level and derived parameters over a strong current (Use Case a). We provide step-by-step instructions and each line of code is explained.\n",
40-
"\n",
41-
"This tutorial is about Sea Level parameters of gridded Sea Level datasets. It covers step by step the process from retrieving the data to the visualisation of the resulting selection.\n",
39+
"This notebook-tutorial provides a practical introduction to the Sea level gridded data from satellite observations for the global ocean from 1993 to present data available at the Climate Data Store (CDS). These datasets contain data for Essential Climate Variables (ECVs) Sea Level, as well as Surface Currents (the latter only in the daily dataset). We give a short introduction to the Sea level data and to their derived surface currents. We provide two use cases of the datasets: plot the monthly Sea Level data during an El Niño event (Use Case 1), plot the Sea Level and derived parameters over a strong current (Use Case 2). We provide step-by-step instructions and each line of code is explained.\n",
4240
"\n",
4341
"The Sea level gridded data from satellite observations for the global ocean from 1993 to present dataset provides sea surface heights values from radar altimetry satellites. The sea level dataset provided by C3S is climate-oriented, that is, dedicated to the monitoring of the long-term evolution of sea level and the analysis of the ocean/climate indicators, both requiring a homogeneous and stable sea level record. To achieve this, a steady two-satellite merged constellation is used at all time steps in the production system: one satellite serves as reference and ensures the long-term stability of the data record; the other satellite (which varies across the record) is used to improve accuracy, sample mesoscale processes and provide coverage at high latitudes. \n",
4442
"\n",
@@ -118,14 +116,14 @@
118116
},
119117
{
120118
"cell_type": "code",
121-
"execution_count": 3,
119+
"execution_count": null,
122120
"id": "31bf4e9e-95ac-4461-ae84-ef35eea3c4e3",
123121
"metadata": {},
124122
"outputs": [],
125123
"source": [
126124
"# Define the folder name to download the data in\n",
127125
"DATADIR = 'datacds/'\n",
128-
"# this will create the folder if it doesnt't already exist, or not if it already exists. \n",
126+
"# This will create the folder if it doesnt't already exist, or not if it already exists. \n",
129127
"os.makedirs(DATADIR, exist_ok=True)"
130128
]
131129
},
@@ -136,7 +134,7 @@
136134
"source": [
137135
"## Explore data\n",
138136
"\n",
139-
"Satellite radar altimetry measure the distance between themselves and the water (or ice) surface, also called \"<b>range</b>\". Several independent instruments onboard the satellites provide with the satellite <b>altitude</b>, which enable to compute a sea surface height with respect to either the reference ellipsoid (a geometric surface approximating Earth surface), the geoid (an equipotential of the Earth gravity field), or a mean sea surface (thus including only variable heights) by subtracting the range from the altitude.\n",
137+
"Satellite radar altimetry measures the distance between themselves and the water (or ice) surface, also called \"<b>range</b>\". Several independent instruments onboard the satellites provide with the satellite <b>altitude</b>, which enable to compute a sea surface height with respect to either the reference ellipsoid (a geometric surface approximating Earth surface), the geoid (an equipotential of the Earth gravity field), or a mean sea surface (thus including only variable heights) by subtracting the range from the altitude.\n",
140138
"\n",
141139
"\n",
142140
"![logo](./img/names-heights.png)\n",
@@ -159,7 +157,7 @@
159157
"id": "2c586d99",
160158
"metadata": {},
161159
"source": [
162-
"In the ocean, surface topography gradients are related to pressure gradients and therefore to currents through [geostrophy](\"https://en.wikipedia.org/wiki/Geostrophic_current\")\n",
160+
"In the ocean, surface topography gradients are related to pressure gradients and therefore to currents through [geostrophy](https://en.wikipedia.org/wiki/Geostrophic_current)\n",
163161
" \n",
164162
"![logo](./img/coriolis2_en.jpg)\n",
165163
"\n",
@@ -247,7 +245,7 @@
247245
"id": "7ab5e8ff-b039-43d4-823c-9bca6a65c3b1",
248246
"metadata": {},
249247
"source": [
250-
"Build the request we send to the CDS, by defining the dataset we are requesting, the \"variable\", date(s) and version (everything you can select in the \"download\" page of the Climate Data Store for this given dataset can be thus defined). Note that in this case \"variable\" refers to the dataset variants, i.e., either \"Daily\" or \"Monthly mean\".\n",
248+
"Build the request we send to the CDS, by defining the dataset we are requesting, the \"variable\", date(s) and version (everything you can select in the \"download\" page of the Climate Data Store for this given dataset can thus be defined). Note that in this case \"variable\" refers to the dataset variants, i.e., either \"Daily\" or \"Monthly mean\".\n",
251249
"We only choose one file in this tutorial, but, by adding other year(s) and/or month(s) in the lists, you could download more. You can also try other months to plot them."
252250
]
253251
},
@@ -314,12 +312,12 @@
314312
},
315313
{
316314
"cell_type": "code",
317-
"execution_count": 6,
315+
"execution_count": null,
318316
"id": "42df24de-09c2-42a8-8a7c-af471189a22d",
319317
"metadata": {},
320318
"outputs": [],
321319
"source": [
322-
"# browse through the data folder, and unzip the files existing there.\n",
320+
"# Browse through the data folder, and unzip the files existing there.\n",
323321
"with zipfile.ZipFile(downloaded_zipfile, 'r') as zip_ref:\n",
324322
" filelist = [os.path.join(DATADIR, f) for f in zip_ref.namelist()]\n",
325323
" zip_ref.extractall(DATADIR)\n",
@@ -386,7 +384,7 @@
386384
},
387385
{
388386
"cell_type": "code",
389-
"execution_count": 8,
387+
"execution_count": null,
390388
"id": "16068fa7-72dc-40d5-9109-46afeddc62cc",
391389
"metadata": {},
392390
"outputs": [
@@ -402,9 +400,9 @@
402400
"source": [
403401
"for v in ds.data_vars:\n",
404402
" try:\n",
405-
"# the \\t (tabulation) is here to space the information for easier reading \n",
403+
"# The \\t (tabulation) is here to space the information for easier reading \n",
406404
" print(v, '\\t', ds[v].attrs['standard_name'], '\\t', ' in unit: ', ds[v].attrs['units'])\n",
407-
"# if a variable has not a standard_name and/or a unit, it is skipped\n",
405+
"# If a variable has not a standard_name and/or a unit, it is skipped\n",
408406
" except Exception:\n",
409407
" pass"
410408
]
@@ -435,12 +433,12 @@
435433
},
436434
{
437435
"cell_type": "code",
438-
"execution_count": 9,
436+
"execution_count": null,
439437
"id": "0e1f2a28-e702-4971-98e5-ce439ebdcf05",
440438
"metadata": {},
441439
"outputs": [],
442440
"source": [
443-
"# we subset the initial dataset at this date in SeaLevelAnom. Note that in the provided file you only have one date, thus we select the time of the data\n",
441+
"# We subset the initial dataset at this date in SeaLevelAnom. Note that in the provided file you only have one date, thus we select the time of the data\n",
444442
"# (set by default at 15th of each month)\n",
445443
"SeaLevelAnom = ds['sla'].sel(time='2015-11-15')\n",
446444
"# Finally, we upload and store the latitude and longitude so as to be able to call them later on\n",
@@ -519,7 +517,7 @@
519517
"id": "44c56a36-5138-4821-9a84-32218fbc4408",
520518
"metadata": {},
521519
"source": [
522-
"**Figure 3.** This plot show the Sea Level Anomalies averaged for the month of November 2015.\n",
520+
"**Figure 3.** This plot shows the Sea Level Anomalies averaged for the month of November 2015.\n",
523521
"A lot of \"dots\" are present. Red and blue 'dots', mostly concentrated in the major current areas (e.g. the Gulf Stream, Antarctic Circumpolar Current, Kuroshio Current, among others) are strong mesoscale eddies, anticyclonic for \"red\" dots (higher-than-average sea level anomalies, also warm eddies), cyclonic for \"blue\" dots (lower-than-average sea level anomalies, also cold eddies). Some of those are present in this monthly average since they typically last for more than 30 days (they are moving, though, during such period). These eddies are an important part of vertical mixing of the ocean, and have thus a role in climate processes.\n",
524522
"\n",
525523
"However, you may also have noticed a large structure West of South America, but it is cut by the projection centered on 0. We will see how to change the map center, and look at that structure. Moreover, the whole map is somehow uniformly colored, and not centered on 0 - defining the minimum and maximum of the colorbar used will improve the readability of the map."
@@ -578,7 +576,7 @@
578576
"id": "80014d38-93cf-4496-a03a-d1cdc76ad888",
579577
"metadata": {},
580578
"source": [
581-
"**Figure 4.** We better see here the higher-than-average sea level anomalies in the Eastern Tropical Pacific which is one of the signature of an El Niño episode (counterbalanced by lower-than-average sea level anomalies in the Western Pacific). If you look at the previous months, you will see this anomaly crossing the whole Pacific, from West to East, from Asia to South America. "
579+
"**Figure 4.** We see here better the higher-than-average sea level anomalies in the Eastern Tropical Pacific, which is one of the signature of an El Niño episode (counterbalanced by lower-than-average sea level anomalies in the Western Pacific). If you look at the previous months, you will see this anomaly crossing the whole Pacific, from West to East, from Asia to South America. "
582580
]
583581
},
584582
{
@@ -594,7 +592,7 @@
594592
"*** \n",
595593
"* read different variables within a daily file,\n",
596594
"* overview what those different variables can show of the ocean dynamics,\n",
597-
"* compute a vector magnitude from its two components (current velocities)\n",
595+
"* compute a vector magnitude from its two components (current velocities),\n",
598596
"* plot them.\n",
599597
"</div> \n",
600598
"\n",
@@ -710,7 +708,7 @@
710708
"id": "0e0aa1e8-1be3-49a8-a126-32a419fdf796",
711709
"metadata": {},
712710
"source": [
713-
"Let's see what data variables we now have - again, the instruction is the same than above, but not the resulting list. "
711+
"Let's see what data variables we have now - again, the instruction is the same as above, but not the resulting list. "
714712
]
715713
},
716714
{
@@ -753,17 +751,17 @@
753751
"id": "f5e6a963-3b77-48ca-9d9c-949fa3cc9359",
754752
"metadata": {},
755753
"source": [
756-
"You can see that they are more variables in this dataset variant. SLA is still here, but in the case of daily data, the EKE is not pre-computed. However, you have zonal (U) and meridional (V) components of the geostrophic velocity derived from the Sea Level Anomalies (ugosa, vgosa). You also have the absolute dynamic topography (ADT) and the corresponding geostrophic velocities (ugos, vgos). Let's have a look at all those, and compute th current velocity too, over the Gulf Stream area."
754+
"You can see that they are more variables in this dataset variant. SLA is still here, but in the case of daily data, the EKE is not pre-computed. However, you have zonal (U) and meridional (V) components of the geostrophic velocity derived from the Sea Level Anomalies (ugosa, vgosa). You also have the absolute dynamic topography (ADT) and the corresponding geostrophic velocities (ugos, vgos). Let's have a look at all those, and compute the current velocity as well, over the Gulf Stream area."
757755
]
758756
},
759757
{
760758
"cell_type": "code",
761-
"execution_count": 17,
759+
"execution_count": null,
762760
"id": "c93c13a6-8ae0-4736-bfb3-e000579607cf",
763761
"metadata": {},
764762
"outputs": [],
765763
"source": [
766-
"# the area of study: North-West Atlantic \n",
764+
"# The area of study: North-West Atlantic \n",
767765
"lon_min=-85. ; lon_max=-30. ; lat_min=15. ; lat_max=55."
768766
]
769767
},
@@ -777,7 +775,7 @@
777775
},
778776
{
779777
"cell_type": "code",
780-
"execution_count": 18,
778+
"execution_count": null,
781779
"id": "5e7f90de-e5be-4d3e-aca5-76658ca03785",
782780
"metadata": {},
783781
"outputs": [],
@@ -789,10 +787,10 @@
789787
"steplon = dsdaily.attrs['geospatial_lon_resolution']\n",
790788
"steplat = dsdaily.attrs['geospatial_lat_resolution']\n",
791789
"\n",
792-
"# extraction over an area - note that it will not work over an area with 180°E within\n",
790+
"# Extraction over an area - note that it will not work over an area with 180°E within\n",
793791
"extrds = dsdaily.sel(longitude=slice(lon_min-(steplon/2), lon_max+(steplon/2)), latitude=slice(lat_min-(steplat/2), lat_max+(steplat/2)))\n",
794792
"\n",
795-
"# we close the initial file, since we will be using the extraction only afterwards\n",
793+
"# We close the initial file, since we will be using the extraction only afterwards\n",
796794
"dsdaily.close()\n",
797795
"\n",
798796
"# Save the geographical subset into a new NetCDF file, using 'to_netcdf' for this\n",
@@ -2470,7 +2468,7 @@
24702468
},
24712469
{
24722470
"cell_type": "code",
2473-
"execution_count": 20,
2471+
"execution_count": null,
24742472
"id": "47603648-4a81-412c-9d0e-c97f0bffc34d",
24752473
"metadata": {},
24762474
"outputs": [
@@ -2486,7 +2484,7 @@
24862484
}
24872485
],
24882486
"source": [
2489-
"# loading of all the variables. We select by the time (again, only one date in this tutorial) \n",
2487+
"# Loading of all the variables. We select by the time (again, only one date in this tutorial) \n",
24902488
"adt = extrds['adt'].sel(time=mydate)\n",
24912489
"uadt = extrds['ugos'].sel(time=mydate)\n",
24922490
"vadt = extrds['vgos'].sel(time=mydate)\n",
@@ -2536,7 +2534,7 @@
25362534
},
25372535
{
25382536
"cell_type": "code",
2539-
"execution_count": 21,
2537+
"execution_count": null,
25402538
"id": "15515f41-a60c-4cc2-9380-9b74b5c3716a",
25412539
"metadata": {},
25422540
"outputs": [
@@ -2578,7 +2576,7 @@
25782576
" transform=ccrs.PlateCarree(central_longitude=0))\n",
25792577
"fvsla = axs[2, 1].pcolormesh(longitude, latitude, vsla, cmap='RdYlBu_r', vmin=-0.5, vmax=0.5, \n",
25802578
" transform=ccrs.PlateCarree(central_longitude=0))\n",
2581-
"# the two plots below are the current velocity (magnitude). We change colorbar since this one is never negative\n",
2579+
"# The two plots below are the current velocity (magnitude). We change colorbar since this one is never negative\n",
25822580
"fceladt = axs[3, 0].pcolormesh(longitude, latitude, uvadt, vmin=0, vmax=0.5, cmap='viridis', \n",
25832581
" transform=ccrs.PlateCarree(central_longitude=0))\n",
25842582
"fcelsla = axs[3, 1].pcolormesh(longitude, latitude, uvsla, vmin=0, vmax=0.5, cmap='viridis', \n",
@@ -2602,7 +2600,7 @@
26022600
"id": "6319fdbc-4ed9-41b7-8728-4839bc60bf57",
26032601
"metadata": {},
26042602
"source": [
2605-
"**Figure 6.** The top left map show the sea surface heights (ADT) with respect to the geoid. One can see the \"hill\" (at North Atlantic basin's scale!) which is the Gulf Stream gyre, around which the Gulf Stream system turn, clockwise. The first column show the ADT and derived geostrophic velocities - U (i.e. eastward or \"zonal\" component) and V (i.e. Northward or \"meridional\" component), and the computation $\\sqrt{u^2 + v^2)}$ , i.e. the current velocity (the vector magnitude). The second column shows the anomalies (notice the change in colorbar minimum & maximum between ADT and SLA). A large part is similar than in ADT since, in such an energetic current, turbulences constitute a major part of the dynamics, so eddies are of strong amplitude and clearly visible even upon the main flow of the current. But in the bottom map the main Gulf Stream flow is visible left, as a large line coming from the Gulf of Mexico and continuing north-eastwards, while \"only\" rings and meanders are visible in the right map."
2603+
"**Figure 6.** The top left map show the sea surface heights (ADT) with respect to the geoid. One can see the \"hill\" (at North Atlantic basin's scale!) which is the Gulf Stream gyre, around which the Gulf Stream system turn, clockwise. The first column show the ADT and derived geostrophic velocities - U (i.e. eastward or \"zonal\" component) and V (i.e. Northward or \"meridional\" component), and the computation $\\sqrt{u^2 + v^2)}$ , i.e. the current velocity (the vector magnitude). The second column shows the anomalies (notice the change in colorbar minimum & maximum between ADT and SLA). A large part is similar as in ADT since, in such an energetic current, turbulences constitute a major part of the dynamics, so eddies are of strong amplitude and clearly visible even upon the main flow of the current. But in the bottom map the main Gulf Stream flow is visible left, as a large line coming from the Gulf of Mexico and continuing north-eastwards, while \"only\" rings and meanders are visible in the right map."
26062604
]
26072605
},
26082606
{

0 commit comments

Comments
 (0)