How to identify time, lon, and lat coordinates in xarray?
What is the best way to determine which coordinates of an xarray
dataArray
object contain longitude
, latitude
and time
?
A typical dataArray
might look like this:
<xarray.Dataset>
Dimensions: (ensemble: 9, lat: 224, lon: 464, time: 12054)
Coordinates:
* lat (lat) float64 25.06 25.19 25.31 25.44 ... 52.56 52.69 52.81 52.94
* lon (lon) float64 -124.9 -124.8 -124.7 ... -67.31 -67.19 -67.06
* time (time) datetime64[ns] 1980-01-01 1980-01-02 ... 2012-12-31
Dimensions without coordinates: ensemble
Data variables:
elevation (lat, lon) float64 dask.array<shape=(224, 464), chunksize=(224, 464)>
temp (ensemble, time, lat, lon) float64 dask.array<shape=(9, 12054, 224, 464), chunksize=(1, 287, 224, 464)>
One approach could be to loop through the variables identified by the variable coords, like temp.coords
, looking for the standard_name
attributes of time
, longitude
, and latitude
. But many datasets don't seem to include standard_name
attributes for all variables.
I guess another approach be to search over the units
attributes and try to identify if they have appropriate units
attributes (e.g. degrees_east
or degrees_west
for longitude
, etc).
Is there a better way?
python python-xarray
add a comment |
What is the best way to determine which coordinates of an xarray
dataArray
object contain longitude
, latitude
and time
?
A typical dataArray
might look like this:
<xarray.Dataset>
Dimensions: (ensemble: 9, lat: 224, lon: 464, time: 12054)
Coordinates:
* lat (lat) float64 25.06 25.19 25.31 25.44 ... 52.56 52.69 52.81 52.94
* lon (lon) float64 -124.9 -124.8 -124.7 ... -67.31 -67.19 -67.06
* time (time) datetime64[ns] 1980-01-01 1980-01-02 ... 2012-12-31
Dimensions without coordinates: ensemble
Data variables:
elevation (lat, lon) float64 dask.array<shape=(224, 464), chunksize=(224, 464)>
temp (ensemble, time, lat, lon) float64 dask.array<shape=(9, 12054, 224, 464), chunksize=(1, 287, 224, 464)>
One approach could be to loop through the variables identified by the variable coords, like temp.coords
, looking for the standard_name
attributes of time
, longitude
, and latitude
. But many datasets don't seem to include standard_name
attributes for all variables.
I guess another approach be to search over the units
attributes and try to identify if they have appropriate units
attributes (e.g. degrees_east
or degrees_west
for longitude
, etc).
Is there a better way?
python python-xarray
1
I just loop and look forlatitude
/lat
andlongitude
/lon
. Is there a convention outlined somewhere?time
/date
/day
/etc. are also tough. some common climate data library withclimate_toolz.standardize_dims
would be great.
– delgadom
Nov 26 '18 at 1:56
add a comment |
What is the best way to determine which coordinates of an xarray
dataArray
object contain longitude
, latitude
and time
?
A typical dataArray
might look like this:
<xarray.Dataset>
Dimensions: (ensemble: 9, lat: 224, lon: 464, time: 12054)
Coordinates:
* lat (lat) float64 25.06 25.19 25.31 25.44 ... 52.56 52.69 52.81 52.94
* lon (lon) float64 -124.9 -124.8 -124.7 ... -67.31 -67.19 -67.06
* time (time) datetime64[ns] 1980-01-01 1980-01-02 ... 2012-12-31
Dimensions without coordinates: ensemble
Data variables:
elevation (lat, lon) float64 dask.array<shape=(224, 464), chunksize=(224, 464)>
temp (ensemble, time, lat, lon) float64 dask.array<shape=(9, 12054, 224, 464), chunksize=(1, 287, 224, 464)>
One approach could be to loop through the variables identified by the variable coords, like temp.coords
, looking for the standard_name
attributes of time
, longitude
, and latitude
. But many datasets don't seem to include standard_name
attributes for all variables.
I guess another approach be to search over the units
attributes and try to identify if they have appropriate units
attributes (e.g. degrees_east
or degrees_west
for longitude
, etc).
Is there a better way?
python python-xarray
What is the best way to determine which coordinates of an xarray
dataArray
object contain longitude
, latitude
and time
?
A typical dataArray
might look like this:
<xarray.Dataset>
Dimensions: (ensemble: 9, lat: 224, lon: 464, time: 12054)
Coordinates:
* lat (lat) float64 25.06 25.19 25.31 25.44 ... 52.56 52.69 52.81 52.94
* lon (lon) float64 -124.9 -124.8 -124.7 ... -67.31 -67.19 -67.06
* time (time) datetime64[ns] 1980-01-01 1980-01-02 ... 2012-12-31
Dimensions without coordinates: ensemble
Data variables:
elevation (lat, lon) float64 dask.array<shape=(224, 464), chunksize=(224, 464)>
temp (ensemble, time, lat, lon) float64 dask.array<shape=(9, 12054, 224, 464), chunksize=(1, 287, 224, 464)>
One approach could be to loop through the variables identified by the variable coords, like temp.coords
, looking for the standard_name
attributes of time
, longitude
, and latitude
. But many datasets don't seem to include standard_name
attributes for all variables.
I guess another approach be to search over the units
attributes and try to identify if they have appropriate units
attributes (e.g. degrees_east
or degrees_west
for longitude
, etc).
Is there a better way?
python python-xarray
python python-xarray
edited Nov 29 '18 at 14:24
Rich Signell
asked Nov 25 '18 at 16:27
Rich SignellRich Signell
8,01922757
8,01922757
1
I just loop and look forlatitude
/lat
andlongitude
/lon
. Is there a convention outlined somewhere?time
/date
/day
/etc. are also tough. some common climate data library withclimate_toolz.standardize_dims
would be great.
– delgadom
Nov 26 '18 at 1:56
add a comment |
1
I just loop and look forlatitude
/lat
andlongitude
/lon
. Is there a convention outlined somewhere?time
/date
/day
/etc. are also tough. some common climate data library withclimate_toolz.standardize_dims
would be great.
– delgadom
Nov 26 '18 at 1:56
1
1
I just loop and look for
latitude
/lat
and longitude
/lon
. Is there a convention outlined somewhere? time
/date
/day
/etc. are also tough. some common climate data library with climate_toolz.standardize_dims
would be great.– delgadom
Nov 26 '18 at 1:56
I just loop and look for
latitude
/lat
and longitude
/lon
. Is there a convention outlined somewhere? time
/date
/day
/etc. are also tough. some common climate data library with climate_toolz.standardize_dims
would be great.– delgadom
Nov 26 '18 at 1:56
add a comment |
4 Answers
4
active
oldest
votes
The MetPy package includes some helpers for systematic coordinate identification like this. You can see the basics of how this works in the xarray with MetPy tutorial. For example, if you want the time coordinate of a DataArray called temp
(assuming it came from a dataset that has been parsed by MetPy), you would simply call:
temp.metpy.time
This is done internally by parsing the coordinate metadata according to the CF conventions.
Here's a short example:
import xarray as xr
import metpy.calc as mpcalc
ds = xr.tutorial.load_dataset('air_temperature')
ds = ds.metpy.parse_cf()
x,y,t = ds['air'].metpy.coordinates('x','y','time')
print([coord.name for coord in (x, y, t)])
which produces:
['lon', 'lat', 'time']
When I first tried installingmetpy
into my conda environment, it wanted to upgrade and downgrade a bunch of stuff. For this coordinate identification it was sufficient to useconda install -c conda-forge metpy pint pooch --no-deps
.
– Rich Signell
Nov 28 '18 at 22:11
add a comment |
You can probably do something similar to the code below with xarray filter_by:
def x_axis(nc):
xnames = ['longitude', 'grid_longitude', 'projection_x_coordinate']
xunits = [
'degrees_east',
'degree_east',
'degree_E',
'degrees_E',
'degreeE',
'degreesE',
]
xvars = list(set(
nc.get_variables_by_attributes(
axis=lambda x: x and str(x).lower() == 'x'
) +
nc.get_variables_by_attributes(
standard_name=lambda x: x and str(x).lower() in xnames
) +
nc.get_variables_by_attributes(
units=lambda x: x and str(x).lower() in xunits
)
))
return xvars
add a comment |
I think we should lean heavily on CF conventions. They exist precisely for this reason. So I would recommend separating this problem into two parts:
- Fixing non-CF-complaint datasets (perhaps a small library for this purpose would make sense--it could contain the logic to translate common variable names into appropriate
standard_name
attributes) - Parsing CF-complaint datasets (can leverage
standard_name
attributes)
I like this idea. Couldstandard_name
also be provided by an Intake Catalog?
– Rich Signell
Nov 27 '18 at 14:43
add a comment |
If you are looking for just the special coords that act as indexes, then you can iterate over the ds.indexes
and do some string parsing on their names. Something like:
ds = xr.tutorial.load_dataset('air_temperature')
ds.lat.attrs.pop('standard_name')
for k in ds.indexes.keys():
v = ds[k]
sn = v.attrs.get('standard_name')
if not sn:
if 'lon' in k:
v.attrs.update(standard_name='longitude')
continue
if 'lat' in k:
v.attrs.update(standard_name='latitude')
continue
if 'time' in k or k in ['day', 't', 'month', 'year']:
v.attrs.update(standard_name='time')
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53469510%2fhow-to-identify-time-lon-and-lat-coordinates-in-xarray%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
4 Answers
4
active
oldest
votes
4 Answers
4
active
oldest
votes
active
oldest
votes
active
oldest
votes
The MetPy package includes some helpers for systematic coordinate identification like this. You can see the basics of how this works in the xarray with MetPy tutorial. For example, if you want the time coordinate of a DataArray called temp
(assuming it came from a dataset that has been parsed by MetPy), you would simply call:
temp.metpy.time
This is done internally by parsing the coordinate metadata according to the CF conventions.
Here's a short example:
import xarray as xr
import metpy.calc as mpcalc
ds = xr.tutorial.load_dataset('air_temperature')
ds = ds.metpy.parse_cf()
x,y,t = ds['air'].metpy.coordinates('x','y','time')
print([coord.name for coord in (x, y, t)])
which produces:
['lon', 'lat', 'time']
When I first tried installingmetpy
into my conda environment, it wanted to upgrade and downgrade a bunch of stuff. For this coordinate identification it was sufficient to useconda install -c conda-forge metpy pint pooch --no-deps
.
– Rich Signell
Nov 28 '18 at 22:11
add a comment |
The MetPy package includes some helpers for systematic coordinate identification like this. You can see the basics of how this works in the xarray with MetPy tutorial. For example, if you want the time coordinate of a DataArray called temp
(assuming it came from a dataset that has been parsed by MetPy), you would simply call:
temp.metpy.time
This is done internally by parsing the coordinate metadata according to the CF conventions.
Here's a short example:
import xarray as xr
import metpy.calc as mpcalc
ds = xr.tutorial.load_dataset('air_temperature')
ds = ds.metpy.parse_cf()
x,y,t = ds['air'].metpy.coordinates('x','y','time')
print([coord.name for coord in (x, y, t)])
which produces:
['lon', 'lat', 'time']
When I first tried installingmetpy
into my conda environment, it wanted to upgrade and downgrade a bunch of stuff. For this coordinate identification it was sufficient to useconda install -c conda-forge metpy pint pooch --no-deps
.
– Rich Signell
Nov 28 '18 at 22:11
add a comment |
The MetPy package includes some helpers for systematic coordinate identification like this. You can see the basics of how this works in the xarray with MetPy tutorial. For example, if you want the time coordinate of a DataArray called temp
(assuming it came from a dataset that has been parsed by MetPy), you would simply call:
temp.metpy.time
This is done internally by parsing the coordinate metadata according to the CF conventions.
Here's a short example:
import xarray as xr
import metpy.calc as mpcalc
ds = xr.tutorial.load_dataset('air_temperature')
ds = ds.metpy.parse_cf()
x,y,t = ds['air'].metpy.coordinates('x','y','time')
print([coord.name for coord in (x, y, t)])
which produces:
['lon', 'lat', 'time']
The MetPy package includes some helpers for systematic coordinate identification like this. You can see the basics of how this works in the xarray with MetPy tutorial. For example, if you want the time coordinate of a DataArray called temp
(assuming it came from a dataset that has been parsed by MetPy), you would simply call:
temp.metpy.time
This is done internally by parsing the coordinate metadata according to the CF conventions.
Here's a short example:
import xarray as xr
import metpy.calc as mpcalc
ds = xr.tutorial.load_dataset('air_temperature')
ds = ds.metpy.parse_cf()
x,y,t = ds['air'].metpy.coordinates('x','y','time')
print([coord.name for coord in (x, y, t)])
which produces:
['lon', 'lat', 'time']
edited Nov 29 '18 at 14:23
Rich Signell
8,01922757
8,01922757
answered Nov 27 '18 at 23:37
Jon ThielenJon Thielen
1013
1013
When I first tried installingmetpy
into my conda environment, it wanted to upgrade and downgrade a bunch of stuff. For this coordinate identification it was sufficient to useconda install -c conda-forge metpy pint pooch --no-deps
.
– Rich Signell
Nov 28 '18 at 22:11
add a comment |
When I first tried installingmetpy
into my conda environment, it wanted to upgrade and downgrade a bunch of stuff. For this coordinate identification it was sufficient to useconda install -c conda-forge metpy pint pooch --no-deps
.
– Rich Signell
Nov 28 '18 at 22:11
When I first tried installing
metpy
into my conda environment, it wanted to upgrade and downgrade a bunch of stuff. For this coordinate identification it was sufficient to use conda install -c conda-forge metpy pint pooch --no-deps
.– Rich Signell
Nov 28 '18 at 22:11
When I first tried installing
metpy
into my conda environment, it wanted to upgrade and downgrade a bunch of stuff. For this coordinate identification it was sufficient to use conda install -c conda-forge metpy pint pooch --no-deps
.– Rich Signell
Nov 28 '18 at 22:11
add a comment |
You can probably do something similar to the code below with xarray filter_by:
def x_axis(nc):
xnames = ['longitude', 'grid_longitude', 'projection_x_coordinate']
xunits = [
'degrees_east',
'degree_east',
'degree_E',
'degrees_E',
'degreeE',
'degreesE',
]
xvars = list(set(
nc.get_variables_by_attributes(
axis=lambda x: x and str(x).lower() == 'x'
) +
nc.get_variables_by_attributes(
standard_name=lambda x: x and str(x).lower() in xnames
) +
nc.get_variables_by_attributes(
units=lambda x: x and str(x).lower() in xunits
)
))
return xvars
add a comment |
You can probably do something similar to the code below with xarray filter_by:
def x_axis(nc):
xnames = ['longitude', 'grid_longitude', 'projection_x_coordinate']
xunits = [
'degrees_east',
'degree_east',
'degree_E',
'degrees_E',
'degreeE',
'degreesE',
]
xvars = list(set(
nc.get_variables_by_attributes(
axis=lambda x: x and str(x).lower() == 'x'
) +
nc.get_variables_by_attributes(
standard_name=lambda x: x and str(x).lower() in xnames
) +
nc.get_variables_by_attributes(
units=lambda x: x and str(x).lower() in xunits
)
))
return xvars
add a comment |
You can probably do something similar to the code below with xarray filter_by:
def x_axis(nc):
xnames = ['longitude', 'grid_longitude', 'projection_x_coordinate']
xunits = [
'degrees_east',
'degree_east',
'degree_E',
'degrees_E',
'degreeE',
'degreesE',
]
xvars = list(set(
nc.get_variables_by_attributes(
axis=lambda x: x and str(x).lower() == 'x'
) +
nc.get_variables_by_attributes(
standard_name=lambda x: x and str(x).lower() in xnames
) +
nc.get_variables_by_attributes(
units=lambda x: x and str(x).lower() in xunits
)
))
return xvars
You can probably do something similar to the code below with xarray filter_by:
def x_axis(nc):
xnames = ['longitude', 'grid_longitude', 'projection_x_coordinate']
xunits = [
'degrees_east',
'degree_east',
'degree_E',
'degrees_E',
'degreeE',
'degreesE',
]
xvars = list(set(
nc.get_variables_by_attributes(
axis=lambda x: x and str(x).lower() == 'x'
) +
nc.get_variables_by_attributes(
standard_name=lambda x: x and str(x).lower() in xnames
) +
nc.get_variables_by_attributes(
units=lambda x: x and str(x).lower() in xunits
)
))
return xvars
answered Nov 27 '18 at 13:58
ocefpafocefpaf
394214
394214
add a comment |
add a comment |
I think we should lean heavily on CF conventions. They exist precisely for this reason. So I would recommend separating this problem into two parts:
- Fixing non-CF-complaint datasets (perhaps a small library for this purpose would make sense--it could contain the logic to translate common variable names into appropriate
standard_name
attributes) - Parsing CF-complaint datasets (can leverage
standard_name
attributes)
I like this idea. Couldstandard_name
also be provided by an Intake Catalog?
– Rich Signell
Nov 27 '18 at 14:43
add a comment |
I think we should lean heavily on CF conventions. They exist precisely for this reason. So I would recommend separating this problem into two parts:
- Fixing non-CF-complaint datasets (perhaps a small library for this purpose would make sense--it could contain the logic to translate common variable names into appropriate
standard_name
attributes) - Parsing CF-complaint datasets (can leverage
standard_name
attributes)
I like this idea. Couldstandard_name
also be provided by an Intake Catalog?
– Rich Signell
Nov 27 '18 at 14:43
add a comment |
I think we should lean heavily on CF conventions. They exist precisely for this reason. So I would recommend separating this problem into two parts:
- Fixing non-CF-complaint datasets (perhaps a small library for this purpose would make sense--it could contain the logic to translate common variable names into appropriate
standard_name
attributes) - Parsing CF-complaint datasets (can leverage
standard_name
attributes)
I think we should lean heavily on CF conventions. They exist precisely for this reason. So I would recommend separating this problem into two parts:
- Fixing non-CF-complaint datasets (perhaps a small library for this purpose would make sense--it could contain the logic to translate common variable names into appropriate
standard_name
attributes) - Parsing CF-complaint datasets (can leverage
standard_name
attributes)
answered Nov 27 '18 at 14:05
RyanRyan
20119
20119
I like this idea. Couldstandard_name
also be provided by an Intake Catalog?
– Rich Signell
Nov 27 '18 at 14:43
add a comment |
I like this idea. Couldstandard_name
also be provided by an Intake Catalog?
– Rich Signell
Nov 27 '18 at 14:43
I like this idea. Could
standard_name
also be provided by an Intake Catalog?– Rich Signell
Nov 27 '18 at 14:43
I like this idea. Could
standard_name
also be provided by an Intake Catalog?– Rich Signell
Nov 27 '18 at 14:43
add a comment |
If you are looking for just the special coords that act as indexes, then you can iterate over the ds.indexes
and do some string parsing on their names. Something like:
ds = xr.tutorial.load_dataset('air_temperature')
ds.lat.attrs.pop('standard_name')
for k in ds.indexes.keys():
v = ds[k]
sn = v.attrs.get('standard_name')
if not sn:
if 'lon' in k:
v.attrs.update(standard_name='longitude')
continue
if 'lat' in k:
v.attrs.update(standard_name='latitude')
continue
if 'time' in k or k in ['day', 't', 'month', 'year']:
v.attrs.update(standard_name='time')
add a comment |
If you are looking for just the special coords that act as indexes, then you can iterate over the ds.indexes
and do some string parsing on their names. Something like:
ds = xr.tutorial.load_dataset('air_temperature')
ds.lat.attrs.pop('standard_name')
for k in ds.indexes.keys():
v = ds[k]
sn = v.attrs.get('standard_name')
if not sn:
if 'lon' in k:
v.attrs.update(standard_name='longitude')
continue
if 'lat' in k:
v.attrs.update(standard_name='latitude')
continue
if 'time' in k or k in ['day', 't', 'month', 'year']:
v.attrs.update(standard_name='time')
add a comment |
If you are looking for just the special coords that act as indexes, then you can iterate over the ds.indexes
and do some string parsing on their names. Something like:
ds = xr.tutorial.load_dataset('air_temperature')
ds.lat.attrs.pop('standard_name')
for k in ds.indexes.keys():
v = ds[k]
sn = v.attrs.get('standard_name')
if not sn:
if 'lon' in k:
v.attrs.update(standard_name='longitude')
continue
if 'lat' in k:
v.attrs.update(standard_name='latitude')
continue
if 'time' in k or k in ['day', 't', 'month', 'year']:
v.attrs.update(standard_name='time')
If you are looking for just the special coords that act as indexes, then you can iterate over the ds.indexes
and do some string parsing on their names. Something like:
ds = xr.tutorial.load_dataset('air_temperature')
ds.lat.attrs.pop('standard_name')
for k in ds.indexes.keys():
v = ds[k]
sn = v.attrs.get('standard_name')
if not sn:
if 'lon' in k:
v.attrs.update(standard_name='longitude')
continue
if 'lat' in k:
v.attrs.update(standard_name='latitude')
continue
if 'time' in k or k in ['day', 't', 'month', 'year']:
v.attrs.update(standard_name='time')
edited Nov 27 '18 at 14:21
answered Nov 27 '18 at 14:05
jsignelljsignell
8861713
8861713
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53469510%2fhow-to-identify-time-lon-and-lat-coordinates-in-xarray%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
I just loop and look for
latitude
/lat
andlongitude
/lon
. Is there a convention outlined somewhere?time
/date
/day
/etc. are also tough. some common climate data library withclimate_toolz.standardize_dims
would be great.– delgadom
Nov 26 '18 at 1:56