Skip to content

Commit 67889cb

Browse files
update
1 parent 1e5be0f commit 67889cb

File tree

2 files changed

+112
-126
lines changed

2 files changed

+112
-126
lines changed

paper/paper.bib

Lines changed: 107 additions & 121 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,3 @@
1-
@manual{OGC_netCDF,
2-
organization = "Open Geospatial Consortium",
3-
title = "NetCDF Binary Encoding Extension Standard: NetCDF Classic and 64-bit Offset Format",
4-
year = 2011,
5-
month = 4,
6-
number = "OGC 10-092r3",
7-
url = "http://www.opengis.net/doc/IS/netcdf-binary/1.0",
8-
}
9-
10-
@inproceedings{Rew2006,
11-
author = {Russell, Rew and Hartnett, Edward and Caron, John},
12-
year = {2006},
13-
month = {01},
14-
organization = {Conference: 22nd International Conference on Interactive Information Processing Systems for Meteorology, Oceanography, and Hydrology},
15-
title = {NetCDF-4: Software Implementing an Enhanced Data Model for the Geosciences}
16-
}
17-
18-
@article{Rew90,
19-
author={Rew, R. and Davis, G.},
20-
journal={IEEE Computer Graphics and Applications},
21-
title={NetCDF: an interface for scientific data access},
22-
year={1990},
23-
volume={10},
24-
number={4},
25-
pages={76-82},
26-
doi={10.1109/38.56302}
27-
}
28-
291
@manual{OGC_Zarr,
302
organization = "Open Geospatial Consortium",
313
title = "Zarr Storage Specification 2.0 Community Standard",
@@ -35,7 +7,6 @@ @manual{OGC_Zarr
357
url = "http://www.opengis.net/doc/CS/zarr/2.0"
368
}
379

38-
3910
@article{Barth2022,
4011
author = {A. Barth and A. Alvera-Azc{\'{a}}rate and C. Troupin and J.-M. Beckers},
4112
title = {{DINCAE} 2.0: multivariate convolutional neural network with error estimates to reconstruct sea surface temperature satellite and altimetry observations},
@@ -45,29 +16,6 @@ @article{Barth2022
4516
doi = {10.5194/gmd-2021-353},
4617
}
4718

48-
@article{Doglioni2023,
49-
AUTHOR = {Doglioni, F. and Ricker, R. and Rabe, B. and Barth, A. and Troupin, C. and Kanzow, T.},
50-
TITLE = {Sea surface height anomaly and geostrophic current velocity from altimetry measurements over the Arctic Ocean (2011--2020)},
51-
JOURNAL = {Earth System Science Data},
52-
VOLUME = {15},
53-
YEAR = {2023},
54-
NUMBER = {1},
55-
PAGES = {225--263},
56-
DOI = {10.5194/essd-15-225-2023}
57-
}
58-
59-
@article{Belgacem21,
60-
AUTHOR = {Belgacem, M. and Schroeder, K. and Barth, A. and Troupin, C. and Pavoni, B. and Raimbault, P. and Garcia, N. and Borghini, M. and Chiggiato, J.},
61-
TITLE = {Climatological distribution of dissolved inorganic nutrients in the western Mediterranean Sea (1981--2017)},
62-
JOURNAL = {Earth System Science Data},
63-
VOLUME = {13},
64-
YEAR = {2021},
65-
NUMBER = {12},
66-
PAGES = {5915--5949},
67-
URL = {https://essd.copernicus.org/articles/13/5915/2021/},
68-
DOI = {10.5194/essd-13-5915-2021}
69-
}
70-
7119
@article{OceananigansJOSS,
7220
author = {Ali Ramadhan and Gregory LeClaire Wagner and Chris Hill and Jean-Michel Campin and Valentin Churavy and Tim Besard and Andre Souza and Alan Edelman and Raffaele Ferrari and John Marshall},
7321
title = {{Oceananigans.jl: Fast and friendly geophysical fluid dynamics on GPUs}},
@@ -81,18 +29,6 @@ @article{OceananigansJOSS
8129
url = {https://doi.org/10.21105/joss.02018}
8230
}
8331

84-
@ARTICLE{Shahzadi21,
85-
AUTHOR={Shahzadi, K. and Pinardi, N. and Barth, A. and Troupin, C. and Lyubartsev, V. and Simoncelli, S.},
86-
TITLE={A New Global Ocean Climatology},
87-
JOURNAL={Frontiers in Environmental Science},
88-
VOLUME={9},
89-
YEAR={2021},
90-
URL={https://www.frontiersin.org/articles/10.3389/fenvs.2021.711363},
91-
DOI={10.3389/fenvs.2021.711363},
92-
ISSN={2296-665X}
93-
}
94-
95-
9632
@misc{NCDatasets,
9733
author = {Alexander Barth},
9834
title = {NCDatasets: A julia package for manipulating netCDF data sets},
@@ -103,17 +39,50 @@ @misc{NCDatasets
10339
commit = {90ed5641684604096558a77020038583e1f2459f}
10440
}
10541

106-
107-
@misc{Eaton2023,
108-
author = {Brian Eaton and Jonathan Gregory and Bob Drach and Karl Taylor and Steve Hankin and Jon Blower and John Caron and Rich Signell and Phil Bentley and Greg Rappa and Heinke Höck and Alison Pamment and Martin Juckes and Martin Raspaud and Randy Horne and Timothy Whiteaker and David Blodgett and Charlie Zender and Daniel Lee and David Hassell and Alan D. Snow and Tobias Kölling and Dave Allured and Aleksandar Jelenak and Anders Meier Soerensen and Lucile Gaultier and Sylvain Herlédan and Fernando Manzano and Lars Bärring and Christopher Barker and Sadie Bartholomew},
109-
title = {{NetCDF Climate and Forecast (CF) Metadata Conventions v1.11}},
110-
publisher = {CF Conventions Committee},
111-
year = 2023,
112-
urldate = {2023-12-05},
113-
url = {http://cfconventions.org/Data/cf-conventions/cf-conventions-1.11/cf-conventions.html},
42+
Eaton, B., Gregory, J., Drach, B., Taylor, K., Hankin, S. et al. (2024). NetCDF Climate and Forecast (CF) Metadata Conventions (1.12). CF Community. https://doi.org/10.5281/zenodo.14275599
43+
44+
45+
@misc{Eaton2024,
46+
author = {Eaton, Brian and
47+
Gregory, Jonathan and
48+
Drach, Bob and
49+
Taylor, Karl and
50+
Hankin, Steve and
51+
Caron, John and
52+
Signell, Rich and
53+
Bentley, Phil and
54+
Rappa, Greg and
55+
Höck, Heinke and
56+
Pamment, Alison and
57+
Juckes, Martin and
58+
Raspaud, Martin and
59+
Blower, Jon and
60+
Horne, Randy and
61+
Whiteaker, Timothy and
62+
Blodgett, David and
63+
Zender, Charlie and
64+
Lee, Daniel and
65+
Hassell, David and
66+
Snow, Alan D. and
67+
Kölling, Tobias and
68+
Allured, Dave and
69+
Jelenak, Aleksandar and
70+
Soerensen, Anders Meier and
71+
Gaultier, Lucile and
72+
Herlédan, Sylvain and
73+
Manzano, Fernando and
74+
Bärring, Lars and
75+
Barker, Christopher and
76+
Bartholomew, Sadie L.},
77+
title = {{NetCDF Climate and Forecast (CF) Metadata Conventions}},
78+
month = dec,
79+
year = 2024,
80+
publisher = {CF Community},
81+
version = {1.12},
82+
doi = {10.5281/zenodo.14275599},
83+
url = {https://doi.org/10.5281/zenodo.14275599}
11484
}
11585

116-
11786
@misc{Eaton2003,
11887
author = {Brian Eaton and Jonathan Gregory and Bob Drach and Karl Taylor and Steve Hankin},
11988
title = {{NetCDF Climate and Forecast (CF) Metadata Conventions v1.0}},
@@ -123,8 +92,6 @@ @misc{Eaton2003
12392
url = {https://cfconventions.org/Data/cf-conventions/cf-conventions-1.0/build/cf-conventions.html}
12493
}
12594

126-
127-
12895
@Misc{COARDS,
12996
title = {COARDS NetCDF Conventions},
13097
month = {Feb},
@@ -133,11 +100,11 @@ @Misc{COARDS
133100
}
134101

135102
@manual{Octave,
136-
title = {{GNU Octave} version 10.1.0 manual: a high-level interactive language for numerical computations},
137-
author = {John W. Eaton and David Bateman and S{\o}ren Hauberg and Rik Wehbring},
138-
year = {2025},
139-
url = {https://www.gnu.org/software/octave/doc/v10.1.0/},
140-
}
103+
title = {{GNU Octave} version 10.1.0 manual: a high-level interactive language for numerical computations},
104+
author = {John W. Eaton and David Bateman and S{\o}ren Hauberg and Rik Wehbring},
105+
year = {2025},
106+
url = {https://www.gnu.org/software/octave/doc/v10.1.0/},
107+
}
141108

142109
@article{Hassell2017,
143110
AUTHOR = {Hassell, D. and Gregory, J. and Blower, J. and Lawrence, B. N. and Taylor, K. E.},
@@ -153,14 +120,13 @@ @article{Hassell2017
153120

154121

155122
@techreport{SeaDataNet_format,
156-
title = "SeaDataNet. Datafile formats. ODV, MEDATLAS, NETCDF",
157-
type = "Report",
158-
url = "https://doi.org/10.13155/56547",
159-
doi = "10.13155/56547",
160-
author = "Lowry, Roy AND Fichaut, Michele AND Schlitzer, Reiner AND Maudire, Gilbert AND Bregent, Sophie AND Gatti, Julie",
161-
year = "2024",
162-
editor = "SeaDataNet",
163-
abstract = "This document specify the data file format in used for data exchange in SeaDataNet. ODV (Ocean Data View) and NetCDF format are mandatory, whereas MEDATLAS is optional. This document describes the following versions of the SeaDataNet formats SeaDataNet ODV import format 0.4 SeaDataNet MEDATLAS format 2.0 SeaDataNet CFPOINT (CF NetCDF)1.0"
123+
title = "SeaDataNet. Datafile formats. ODV, MEDATLAS, NETCDF",
124+
type = "Report",
125+
url = "https://doi.org/10.13155/56547",
126+
doi = "10.13155/56547",
127+
author = "Lowry, Roy AND Fichaut, Michele AND Schlitzer, Reiner AND Maudire, Gilbert AND Bregent, Sophie AND Gatti, Julie",
128+
year = "2024",
129+
editor = "SeaDataNet"
164130
}
165131

166132

@@ -175,28 +141,28 @@ @InProceedings{mckinney-proc-scipy-2010
175141
}
176142

177143
@Article{vanVerseveld2024,
178-
AUTHOR = {van Verseveld, W. J. and Weerts, A. H. and Visser, M. and Buitink, J. and Imhoff, R. O. and Boisgontier, H. and Bouaziz, L. and Eilander, D. and Hegnauer, M. and ten Velden, C. and Russell, B.},
179-
TITLE = {Wflow\_sbm v0.7.3, a spatially distributed hydrological model: from global data to local applications},
180-
JOURNAL = {Geoscientific Model Development},
181-
VOLUME = {17},
182-
YEAR = {2024},
183-
NUMBER = {8},
184-
PAGES = {3199--3234},
185-
URL = {https://gmd.copernicus.org/articles/17/3199/2024/},
186-
DOI = {10.5194/gmd-17-3199-2024}
144+
AUTHOR = {van Verseveld, W. J. and Weerts, A. H. and Visser, M. and Buitink, J. and Imhoff, R. O. and Boisgontier, H. and Bouaziz, L. and Eilander, D. and Hegnauer, M. and ten Velden, C. and Russell, B.},
145+
TITLE = {Wflow\_sbm v0.7.3, a spatially distributed hydrological model: from global data to local applications},
146+
JOURNAL = {Geoscientific Model Development},
147+
VOLUME = {17},
148+
YEAR = {2024},
149+
NUMBER = {8},
150+
PAGES = {3199--3234},
151+
URL = {https://gmd.copernicus.org/articles/17/3199/2024/},
152+
DOI = {10.5194/gmd-17-3199-2024}
187153
}
188154

189155
@article{Pasquier2022,
190-
doi = {10.21105/joss.03814},
191-
url = {https://doi.org/10.21105/joss.03814},
192-
year = {2022},
193-
publisher = {The Open Journal},
194-
volume = {7},
195-
number = {69},
196-
pages = {3814},
197-
author = {Benoît Pasquier and François W. Primeau and Seth G. John},
198-
title = {{AIBECS.jl: A tool for exploring global marine biogeochemical cycles.}},
199-
journal = {Journal of Open Source Software}
156+
doi = {10.21105/joss.03814},
157+
url = {https://doi.org/10.21105/joss.03814},
158+
year = {2022},
159+
publisher = {The Open Journal},
160+
volume = {7},
161+
number = {69},
162+
pages = {3814},
163+
author = {Benoît Pasquier and François W. Primeau and Seth G. John},
164+
title = {{AIBECS.jl: A tool for exploring global marine biogeochemical cycles.}},
165+
journal = {Journal of Open Source Software}
200166
}
201167

202168

@@ -230,16 +196,16 @@ @software{Gans2023
230196

231197

232198
@article{Forget2024,
233-
doi = {10.21105/jcon.00164},
234-
url = {https://doi.org/10.21105/jcon.00164},
235-
year = {2024},
236-
publisher = {The Open Journal},
237-
volume = {6},
238-
number = {65},
239-
pages = {164},
240-
author = {Gaël Forget},
241-
title = {{Digital Twins for Ocean Robots}},
242-
journal = {Proceedings of the JuliaCon Conferences}
199+
doi = {10.21105/jcon.00164},
200+
url = {https://doi.org/10.21105/jcon.00164},
201+
year = {2024},
202+
publisher = {The Open Journal},
203+
volume = {6},
204+
number = {65},
205+
pages = {164},
206+
author = {Gaël Forget},
207+
title = {{Digital Twins for Ocean Robots}},
208+
journal = {Proceedings of the JuliaCon Conferences}
243209
}
244210

245211

@@ -335,14 +301,34 @@ @Misc{numpy
335301
key = {NumPy},
336302
OPTauthor = {},
337303
title = {NumPy API Reference: Datetimes and timedeltas},
338-
OPThowpublished = {},
339-
OPTmonth = {},
340-
OPTyear = {},
341-
OPTnote = {},
304+
month = dec,
305+
year = {2024},
342306
url = {https://numpy.org/doc/stable/reference/arrays.datetime.html},
343307
note = {(last access: 4 April 2025)}
344308
}
345309

310+
@Article{harris2020array,
311+
title = {Array programming with {NumPy}},
312+
author = {Charles R. Harris and K. Jarrod Millman and St{\'{e}}fan J.
313+
van der Walt and Ralf Gommers and Pauli Virtanen and David
314+
Cournapeau and Eric Wieser and Julian Taylor and Sebastian
315+
Berg and Nathaniel J. Smith and Robert Kern and Matti Picus
316+
and Stephan Hoyer and Marten H. van Kerkwijk and Matthew
317+
Brett and Allan Haldane and Jaime Fern{\'{a}}ndez del
318+
R{\'{i}}o and Mark Wiebe and Pearu Peterson and Pierre
319+
G{\'{e}}rard-Marchant and Kevin Sheppard and Tyler Reddy and
320+
Warren Weckesser and Hameer Abbasi and Christoph Gohlke and
321+
Travis E. Oliphant},
322+
year = {2020},
323+
month = sep,
324+
journal = {Nature},
325+
volume = {585},
326+
number = {7825},
327+
pages = {357--362},
328+
doi = {10.1038/s41586-020-2649-2},
329+
publisher = {Springer Science and Business Media {LLC}},
330+
url = {https://doi.org/10.1038/s41586-020-2649-2}
331+
}
346332

347333
@Manual{vanLaake2025,
348334
title = {{CFtime: Using CF-Compliant Calendars with Climate Projection Data}},

paper/paper.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ bibliography: paper.bib
2222
# Summary
2323

2424

25-
Climate and Forecasting (CF) conventions are a metadata standard for earth data [@Eaton2023] and are mainly used in oceanography and meteorology.
25+
Climate and Forecasting (CF) conventions are a metadata standard for earth data [@Eaton2024] and are mainly used in oceanography and meteorology.
2626
It aims to be equally applicable to model data, remote-sensing data and in-situ data, despite the high heterogeneity of the different data types.
2727
The CF conventions were originally proposed for the NetCDF storage format, but they are also increasingly used with other formats like Zarr [@OGC_Zarr] and grib ([GRIBDatasets](https://github.com/JuliaGeo/GRIBDatasets.jl)).
2828

@@ -67,11 +67,11 @@ Different calendars have been defined in the context of the CF conventions:
6767
| `360_day` | `DateTime360Day` | calendar assuming that all months have 30 days |
6868

6969

70-
The Gregorian calendar has been introduced to account for the fact that a solar year is not exactly 365.25 days, but more closely approximating 365.2422 days. In the standard calendar, the day Thursday, 4 October 1582 (the last day of the Julian calendar) is followed by the first day of the Gregorian calendar, Friday, 15 October 1582 (the date of introduction of the Gregorian calendar).
70+
The Gregorian calendar has been introduced to account for the fact that a solar year is not exactly 365.25 days, but more closely approximating 365.2422 days. In the standard calendar, the day Thursday, 4 October 1582 (the last day of the Julian calendar) is followed by the first day of the Gregorian calendar, Friday, 15 October 1582 (the date of introduction of the Gregorian calendar).
7171

7272
CFTime is based on the Meeus' algorithm [@Meeus98] for the Gregorian and Julian calendars, with two adaptations:
7373

74-
* The original algorithm is based on floating-point arithmetic. The algorithm in CFTime is implemented using integer arithmetics, which is more efficient. Also, underflows and overflows are easier to reason about in integer arithmetic.
74+
* The original algorithm is based on floating-point arithmetic. The algorithm in CFTime is implemented using integer arithmetics, which is more efficient. Also, underflows and overflows are easier to reason about in integer arithmetic.
7575
* The Meeus' algorithm has been extended to dates prior to 100 BC.
7676

7777
The Meeus' algorithm is very compact, efficient, requires only very few branches, and does not need large tables of constants. For verification purposes, the
@@ -80,8 +80,8 @@ algorithm used in the cftime python package [@Whitaker2024] was ported to Julia,
8080
The following is a list of the main features of CFTime:
8181

8282
* Basic arithmetic such as computing the duration between two time instances by subtracting them, or adding a duration to a time instance
83-
* Supporting a wide range of the time resolutions, from days down to attoseconds. Even if the use of attoseconds is quite unlikely in the context of earth science data, it has been added for feature parity with NumPy's date time type [@numpy].
84-
* Supporting arbitrary time origins. Since the time origin for NumPy's date time type is fixed to be 1 January 1970 at 00:00, the usefulness of some time units is limited. As an extreme example, with attoseconds, all NumPy's date times can only express a time span of +/- 9.2 s around the time origin since a 64-bit integer is used internally. For CFTime.jl the time origin is arbitrary and part of the parametric type definition and not an additional field of the time data structure. As a consequence, a large array of date times with common time origin only need to store the time counter (also a 64-bit integer per default) for every element, which makes this case as memory efficient as NumPy's or Julia's default date time for this common use case.
83+
* Supporting a wide range of the time resolutions, from days down to attoseconds. Even if the use of attoseconds is quite unlikely in the context of earth science data, it has been added for feature parity with NumPy's date time type [@harris2020array; @numpy].
84+
* Supporting arbitrary time origins. Since the time origin for NumPy's date time type is fixed to be 1 January 1970 at 00:00, the usefulness of some time units is limited. As an extreme example, with attoseconds, all NumPy's date times can only express a time span of +/- 9.2 s around the time origin since a 64-bit integer is used internally. For CFTime.jl the time origin is arbitrary and part of the parametric type definition and not an additional field of the time data structure. As a consequence, a large array of date times with common time origin only need to store the time counter (also a 64-bit integer per default) for every element, which makes this case as memory efficient as NumPy's or Julia's default date time for this common use case.
8585

8686
* Per default, the time counter is a 64-bit integer, but other integers types (such as 32-bit, 128-bit or Julia's arbitrary-sized integer `BigInt`) or floating-point types can be used. Using an integer to encode a time instance should be preferred for most applications, as it is easier to reason about the time resolution in this case. Julia's compiler specializes all functions and methods for the employed types for optimal run-time performance.
8787
* Conversion function between types and Julia's `DateTime`.

0 commit comments

Comments
 (0)