1+ from typing import Optional
2+ from pydantic import BaseModel , HttpUrl
3+
4+ class Metadata (BaseModel ):
5+ acknowledgement : str
6+ comment : str
7+ contributor_name : str
8+ contributor_role : str
9+ creator_email : str
10+ creator_name : str
11+ creator_url : HttpUrl
12+ deployment_id : str
13+ deployment_name : str
14+ deployment_start : str
15+ deployment_end : str
16+ format_version : str
17+ glider_name : str
18+ glider_serial : str
19+ glider_model : str
20+ glider_instrument_name : str
21+ glider_wmo : str
22+ institution : str
23+ keywords : str
24+ keywords_vocabulary : str
25+ license : str
26+ metadata_link : HttpUrl
27+ Metadata_Conventions : str
28+ naming_authority : str
29+ platform_type : str
30+ processing_level : str
31+ project : str
32+ project_url : HttpUrl
33+ publisher_email : str
34+ publisher_name : str
35+ publisher_url : HttpUrl
36+ references : str
37+ sea_name : str
38+ source : str
39+ standard_name_vocabulary : str
40+ summary : str
41+ transmission_system : str
42+ wmo_id : str
43+
44+ class Device (BaseModel ):
45+ make : str
46+ model : str
47+ serial : str
48+ long_name : Optional [str ] = None
49+ make_model : Optional [str ] = None
50+ factory_calibrated : Optional [str ] = None
51+ calibration_date : Optional [str ] = None
52+ calibration_report : Optional [str ] = None
53+ comment : Optional [str ] = None
54+
55+
56+ class GliderDevices (BaseModel ):
57+ pressure : Device
58+ ctd : Device
59+ optics : Device
60+ oxygen : Device
61+
62+
63+ class NetCDFVariable (BaseModel ):
64+ source : str
65+ long_name : Optional [str ] = None
66+ standard_name : Optional [str ] = None
67+ units : Optional [str ] = None
68+ axis : Optional [str ] = None
69+ coordinates : Optional [str ] = None
70+ conversion : Optional [str ] = None
71+ comment : Optional [str ] = None
72+ observation_type : Optional [str ] = None
73+ platform : Optional [str ] = None
74+ reference : Optional [str ] = None
75+ valid_max : Optional [float ] = None
76+ valid_min : Optional [float ] = None
77+ coordinate_reference_frame : Optional [str ] = None
78+ instrument : Optional [str ] = None
79+ accuracy : Optional [float ] = None
80+ precision : Optional [float ] = None
81+ resolution : Optional [float ] = None
82+ positive : Optional [str ] = None
83+ reference_datum : Optional [str ] = None
84+ coarsen : Optional [int ] = None
85+
86+
87+ class NetCDFVariables (BaseModel ):
88+ timebase : Optional [NetCDFVariable ] = None #! Is this required? `example-slocum`` doesn't have it
89+ time : NetCDFVariable
90+ latitude : NetCDFVariable
91+ longitude : NetCDFVariable
92+ heading : NetCDFVariable
93+ pitch : NetCDFVariable
94+ roll : NetCDFVariable
95+ conductivity : NetCDFVariable
96+ temperature : NetCDFVariable
97+ pressure : NetCDFVariable
98+ chlorophyll : NetCDFVariable
99+ cdom : NetCDFVariable
100+ backscatter_700 : NetCDFVariable
101+ oxygen_concentration : NetCDFVariable
102+ temperature_oxygen : Optional [NetCDFVariable ] = None #! Is this required? `example-slocum`` doesn't have it
103+
104+
105+ class ProfileVariable (BaseModel ):
106+ comment : str
107+ long_name : str
108+ valid_max : Optional [float ] = None
109+ valid_min : Optional [float ] = None
110+ observation_type : Optional [str ] = None
111+ platform : Optional [str ] = None
112+ standard_name : Optional [str ] = None
113+ units : Optional [str ] = None
114+ calendar : Optional [str ] = None
115+ type : Optional [str ] = None
116+ calibration_date : Optional [str ] = None
117+ calibration_report : Optional [str ] = None
118+ factory_calibrated : Optional [str ] = None
119+ make_model : Optional [str ] = None
120+ serial_number : Optional [str ] = None
121+
122+
123+ class ProfileVariables (BaseModel ):
124+ profile_id : ProfileVariable
125+ profile_time : ProfileVariable
126+ profile_time_start : ProfileVariable
127+ profile_time_end : ProfileVariable
128+ profile_lat : ProfileVariable
129+ profile_lon : ProfileVariable
130+ u : ProfileVariable
131+ v : ProfileVariable
132+ lon_uv : ProfileVariable
133+ lat_uv : ProfileVariable
134+ time_uv : ProfileVariable
135+ instrument_ctd : ProfileVariable
0 commit comments