1+ import numpy as np
2+ import pandas as pd
13import xarray as xr
24
35from . import T , X , Y , Z
@@ -12,7 +14,157 @@ def _nemo_data() -> xr.Dataset:
1214
1315 https://www.mercator-ocean.eu/en/solutions-expertise/accessing-digital-data/product-details/?offer=4217979b-2662-329a-907c-602fdc69c3a3&system=d35404e4-40d3-59d6-3608-581c9495d86a
1416 """
15- ...
17+ # Using data from lorenz.
18+ # Mesh file: /storage/shared/oceanparcels/input_data/MOi/domain_ORCA0083-N006/domain_ORCA0083-N006/PSY4V3R1_mesh_hgr.nc
19+ # Data files: /storage/shared/oceanparcels/input_data/MOi/GLO12/psy4v3r1-daily_{U,V}_*.nc
20+ # used modulefile for reference: "/storage/shared/oceanparcels/input_data/MOi/psy4v3r1/create_fieldset2D.py"
21+
22+ # scp "lorenz:/storage/shared/oceanparcels/input_data/MOi/GLO12/psy4v3r1-daily_{U,V,W,T}_2007-01-0{1,2}.nc" data-v4/nemo/field
23+
24+ time_counter_data = pd .date_range (start = "2007-01-01T12:00:00" , periods = T , freq = "D" )
25+ y_data = np .arange (1 , Y + 1 )
26+ x_data = np .arange (1 , X + 1 )
27+ deptht_data = np .linspace (0.494 , 5.728e03 , Z )
28+
29+ # Create the dataset
30+ return xr .Dataset (
31+ data_vars = {
32+ "sotkeavmu1" : (
33+ ("time_counter" , "y" , "x" ),
34+ np .random .rand (T , Y , X ).astype (np .float64 ),
35+ {
36+ "units" : "m2 s-1" ,
37+ "valid_min" : np .float64 (0.0 ),
38+ "valid_max" : np .float64 (100.0 ),
39+ "long_name" : "Vertical Eddy Viscosity U 1m" ,
40+ "standard_name" : "ocean_vertical_eddy_viscosity_u_1m" ,
41+ "short_name" : "sotkeavmu1" ,
42+ "online_operation" : "N/A" ,
43+ "interval_operation" : np .int64 (86400 ),
44+ "interval_write" : np .int64 (86400 ),
45+ "associate" : "time_counter nav_lat nav_lon" ,
46+ },
47+ ),
48+ "sotkeavmu15" : (
49+ ("time_counter" , "y" , "x" ),
50+ np .random .rand (T , Y , X ).astype (np .float64 ),
51+ {
52+ "units" : "m2 s-1" ,
53+ "valid_min" : np .float64 (0.0 ),
54+ "valid_max" : np .float64 (100.0 ),
55+ "long_name" : "Vertical Eddy Viscosity U 15m" ,
56+ "standard_name" : "ocean_vertical_eddy_viscosity_u_15m" ,
57+ "short_name" : "sotkeavmu15" ,
58+ "online_operation" : "N/A" ,
59+ "interval_operation" : np .int64 (86400 ),
60+ "interval_write" : np .int64 (86400 ),
61+ "associate" : "time_counter nav_lat nav_lon" ,
62+ },
63+ ),
64+ "sotkeavmu30" : (
65+ ("time_counter" , "y" , "x" ),
66+ np .random .rand (T , Y , X ).astype (np .float64 ),
67+ {
68+ "units" : "m2 s-1" ,
69+ "valid_min" : np .float64 (0.0 ),
70+ "valid_max" : np .float64 (100.0 ),
71+ "long_name" : "Vertical Eddy Viscosity U 30m" ,
72+ "standard_name" : "ocean_vertical_eddy_viscosity_u_30m" ,
73+ "short_name" : "sotkeavmu30" ,
74+ "online_operation" : "N/A" ,
75+ "interval_operation" : np .int64 (86400 ),
76+ "interval_write" : np .int64 (86400 ),
77+ "associate" : "time_counter nav_lat nav_lon" ,
78+ },
79+ ),
80+ "sotkeavmu50" : (
81+ ("time_counter" , "y" , "x" ),
82+ np .random .rand (T , Y , X ).astype (np .float64 ),
83+ {
84+ "units" : "m2 s-1" ,
85+ "valid_min" : np .float64 (0.0 ),
86+ "valid_max" : np .float64 (100.0 ),
87+ "long_name" : "Vertical Eddy Viscosity U 50m" ,
88+ "standard_name" : "ocean_vertical_eddy_viscosity_u_50m" ,
89+ "short_name" : "sotkeavmu50" ,
90+ "online_operation" : "N/A" ,
91+ "interval_operation" : np .int64 (86400 ),
92+ "interval_write" : np .int64 (86400 ),
93+ "associate" : "time_counter nav_lat nav_lon" ,
94+ },
95+ ),
96+ "vozocrtx" : (
97+ ("time_counter" , "deptht" , "y" , "x" ),
98+ np .random .rand (T , Z , Y , X ).astype (np .float64 ),
99+ {
100+ "units" : "m s-1" ,
101+ "valid_min" : np .float64 (- 10.0 ),
102+ "valid_max" : np .float64 (10.0 ),
103+ "long_name" : "Zonal velocity" ,
104+ "standard_name" : "sea_water_x_velocity" ,
105+ "short_name" : "vozocrtx" ,
106+ "online_operation" : "N/A" ,
107+ "interval_operation" : np .int64 (86400 ),
108+ "interval_write" : np .int64 (86400 ),
109+ "associate" : "time_counter deptht nav_lat nav_lon" ,
110+ },
111+ ),
112+ },
113+ coords = {
114+ "nav_lon" : (
115+ ("y" , "x" ),
116+ np .random .rand (Y , X ).astype (np .float32 ),
117+ {
118+ "units" : "degrees_east" ,
119+ "valid_min" : np .float32 (- 179.99984754002182 ),
120+ "valid_max" : np .float32 (179.999842386314 ),
121+ "long_name" : "Longitude" ,
122+ "nav_model" : "Default grid" ,
123+ "standard_name" : "longitude" ,
124+ },
125+ ),
126+ "nav_lat" : (
127+ ("y" , "x" ),
128+ np .random .rand (Y , X ).astype (np .float32 ),
129+ {
130+ "units" : "degrees_north" ,
131+ "valid_min" : np .float32 (- 77.0104751586914 ),
132+ "valid_max" : np .float32 (89.9591064453125 ),
133+ "long_name" : "Latitude" ,
134+ "nav_model" : "Default grid" ,
135+ "standard_name" : "latitude" ,
136+ },
137+ ),
138+ "x" : (("x" ,), x_data , {"standard_name" : "projection_x_coordinate" , "axis" : "X" , "units" : "1" }),
139+ "y" : (("y" ,), y_data , {"standard_name" : "projection_y_coordinate" , "axis" : "Y" , "units" : "1" }),
140+ "time_counter" : (
141+ ("time_counter" ,),
142+ time_counter_data ,
143+ {"standard_name" : "time" , "long_name" : "Time axis" , "axis" : "T" , "time_origin" : "1950-JAN-01 00:00:00" },
144+ ),
145+ "deptht" : (
146+ ("deptht" ,),
147+ deptht_data ,
148+ {
149+ "units" : "m" ,
150+ "positive" : "down" ,
151+ "valid_min" : np .float64 (0.4940253794193268 ),
152+ "valid_max" : np .float64 (5727.91650390625 ),
153+ "long_name" : "Vertical T levels" ,
154+ "standard_name" : "depth" ,
155+ "axis" : "Z" ,
156+ },
157+ ),
158+ },
159+ attrs = {
160+ "Conventions" : "CF-1.0" ,
161+ "file_name" : "ORCA12_LIM-T00_y2021m09d27_gridU.nc" ,
162+ "institution" : "MERCATOR OCEAN" ,
163+ "source" : "NEMO" ,
164+ "TimeStamp" : "2021-OCT-03 18:27:01 GMT-0000" ,
165+ "references" : "http://www.mercator-ocean.eu" ,
166+ },
167+ )
16168
17169
18170def _hycom_data () -> xr .Dataset :
0 commit comments