Regrid from CESM grid to lat/lon grid

Contents

Regrid from CESM grid to lat/lon grid#

[1]:
%load_ext autoreload
%autoreload 2

import os
os.chdir('/glade/u/home/fengzhu/Github/x4c/docsrc/notebooks')
import x4c
print(x4c.__version__)
2024.5.15

ATM#

[2]:
dirpath = '/glade/campaign/univ/ubrn0018/fengzhu/CESM_output/timeseries/b.e13.B1850C5.ne16_g16.icesm131_d18O_fixer.Miocene.3xCO2.005/atm/proc/tseries/month_1'
fname = 'b.e13.B1850C5.ne16_g16.icesm131_d18O_fixer.Miocene.3xCO2.005.cam.h0.TS.695101-700012.nc'
ds = x4c.load_dataset(os.path.join(dirpath, fname), comp='atm', grid='ne16', adjust_month=True)
ds
[2]:
<xarray.Dataset>
Dimensions:       (lev: 30, ilev: 31, ncol: 13826, time: 600, nbnd: 2)
Coordinates:
  * lev           (lev) float64 3.643 7.595 14.36 24.61 ... 957.5 976.3 992.6
  * ilev          (ilev) float64 2.255 5.032 10.16 18.56 ... 967.5 985.1 1e+03
  * time          (time) object 6951-01-31 00:00:00 ... 7000-12-31 00:00:00
Dimensions without coordinates: ncol, nbnd
Data variables: (12/32)
    hyam          (lev) float64 0.003643 0.007595 0.01436 ... 0.001989 0.0
    hybm          (lev) float64 0.0 0.0 0.0 0.0 ... 0.9251 0.9512 0.9743 0.9926
    P0            float64 1e+05
    hyai          (ilev) float64 0.002255 0.005032 0.01016 ... 0.003979 0.0 0.0
    hybi          (ilev) float64 0.0 0.0 0.0 0.0 ... 0.9389 0.9636 0.9851 1.0
    lat           (ncol) float64 -35.26 -35.98 -37.07 ... 37.91 37.91 36.74
    ...            ...
    f11vmr        (time) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0
    f12vmr        (time) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0
    sol_tsi       (time) float64 -1.0 -1.0 -1.0 -1.0 ... -1.0 -1.0 -1.0 -1.0
    nsteph        (time) int32 121765488 121766832 ... 122638512 122640000
    TS            (time, ncol) float32 303.3 302.6 301.7 ... 296.1 293.7 294.3
    gw            (ncol) float64 0.0001546 0.000515 ... 0.00129 0.001289
Attributes: (12/15)
    np:               4
    ne:               16
    Conventions:      CF-1.0
    source:           CAM
    case:             b.e13.B1850C5.ne16_g16.icesm131_d18O_fixer.Miocene.3xCO...
    title:            UNSET
    ...               ...
    revision_Id:      $Id$
    initial_file:     /glade/work/fengzhu/Projects/Miocene-on-Derecho/04.atm-...
    topography_file:  /glade/work/fengzhu/Projects/Miocene-on-Derecho/04.atm-...
    path:             /glade/campaign/univ/ubrn0018/fengzhu/CESM_output/times...
    comp:             atm
    grid:             ne16
[3]:
ds_rgd = ds.x.regrid(dlon=1, dlat=1)
ds_rgd['TS']
[3]:
<xarray.DataArray 'TS' (time: 600, lat: 180, lon: 360)>
array([[[284.38776, 284.38766, 284.38742, ..., 284.38742, 284.38766,
         284.38776],
        [284.5725 , 284.5725 , 284.5725 , ..., 284.5725 , 284.5725 ,
         284.5725 ],
        [282.60666, 282.61536, 282.63278, ..., 282.63278, 282.61536,
         282.60666],
        ...,
        [277.0105 , 277.01065, 277.01093, ..., 277.01093, 277.01065,
         277.0105 ],
        [277.0405 , 277.0405 , 277.0405 , ..., 277.0405 , 277.0405 ,
         277.0405 ],
        [277.06198, 277.062  , 277.06204, ..., 277.06204, 277.062  ,
         277.06198]],

       [[280.62686, 280.62643, 280.6256 , ..., 280.6256 , 280.62643,
         280.62686],
        [281.30368, 281.30368, 281.30368, ..., 281.30368, 281.30368,
         281.30368],
        [281.2053 , 281.20572, 281.2066 , ..., 281.2066 , 281.20572,
         281.2053 ],
...
        [279.49725, 279.49725, 279.49728, ..., 279.49728, 279.49725,
         279.49725],
        [279.50055, 279.50055, 279.50055, ..., 279.50055, 279.50055,
         279.50055],
        [279.50922, 279.50922, 279.50922, ..., 279.50922, 279.50922,
         279.50922]],

       [[272.5169 , 272.51712, 272.5176 , ..., 272.5176 , 272.51712,
         272.5169 ],
        [272.12894, 272.12894, 272.12894, ..., 272.12894, 272.12894,
         272.12894],
        [272.08936, 272.0895 , 272.08987, ..., 272.08987, 272.0895 ,
         272.08936],
        ...,
        [277.66974, 277.66992, 277.67035, ..., 277.67035, 277.66992,
         277.66974],
        [277.71487, 277.71487, 277.71487, ..., 277.71487, 277.71487,
         277.71487],
        [277.74133, 277.74136, 277.7414 , ..., 277.7414 , 277.74136,
         277.74133]]], dtype=float32)
Coordinates:
  * time     (time) object 6951-01-31 00:00:00 ... 7000-12-31 00:00:00
  * lat      (lat) float64 -89.5 -88.5 -87.5 -86.5 -85.5 ... 86.5 87.5 88.5 89.5
  * lon      (lon) float64 0.5 1.5 2.5 3.5 4.5 ... 355.5 356.5 357.5 358.5 359.5
Attributes:
    units:         K
    long_name:     Surface temperature (radiative)
    cell_methods:  time: mean
[10]:
ds_rgd['lat']
[10]:
<xarray.DataArray 'lat' (lat: 180)>
array([-89.5, -88.5, -87.5, -86.5, -85.5, -84.5, -83.5, -82.5, -81.5, -80.5,
       -79.5, -78.5, -77.5, -76.5, -75.5, -74.5, -73.5, -72.5, -71.5, -70.5,
       -69.5, -68.5, -67.5, -66.5, -65.5, -64.5, -63.5, -62.5, -61.5, -60.5,
       -59.5, -58.5, -57.5, -56.5, -55.5, -54.5, -53.5, -52.5, -51.5, -50.5,
       -49.5, -48.5, -47.5, -46.5, -45.5, -44.5, -43.5, -42.5, -41.5, -40.5,
       -39.5, -38.5, -37.5, -36.5, -35.5, -34.5, -33.5, -32.5, -31.5, -30.5,
       -29.5, -28.5, -27.5, -26.5, -25.5, -24.5, -23.5, -22.5, -21.5, -20.5,
       -19.5, -18.5, -17.5, -16.5, -15.5, -14.5, -13.5, -12.5, -11.5, -10.5,
        -9.5,  -8.5,  -7.5,  -6.5,  -5.5,  -4.5,  -3.5,  -2.5,  -1.5,  -0.5,
         0.5,   1.5,   2.5,   3.5,   4.5,   5.5,   6.5,   7.5,   8.5,   9.5,
        10.5,  11.5,  12.5,  13.5,  14.5,  15.5,  16.5,  17.5,  18.5,  19.5,
        20.5,  21.5,  22.5,  23.5,  24.5,  25.5,  26.5,  27.5,  28.5,  29.5,
        30.5,  31.5,  32.5,  33.5,  34.5,  35.5,  36.5,  37.5,  38.5,  39.5,
        40.5,  41.5,  42.5,  43.5,  44.5,  45.5,  46.5,  47.5,  48.5,  49.5,
        50.5,  51.5,  52.5,  53.5,  54.5,  55.5,  56.5,  57.5,  58.5,  59.5,
        60.5,  61.5,  62.5,  63.5,  64.5,  65.5,  66.5,  67.5,  68.5,  69.5,
        70.5,  71.5,  72.5,  73.5,  74.5,  75.5,  76.5,  77.5,  78.5,  79.5,
        80.5,  81.5,  82.5,  83.5,  84.5,  85.5,  86.5,  87.5,  88.5,  89.5])
Coordinates:
  * lat      (lat) float64 -89.5 -88.5 -87.5 -86.5 -85.5 ... 86.5 87.5 88.5 89.5

OCN#

[8]:
dirpath = '/glade/campaign/univ/ubrn0018/fengzhu/CESM_output/timeseries/b.e13.B1850C5.ne16_g16.icesm131_d18O_fixer.Miocene.3xCO2.005/ocn/proc/tseries/month_1'
fname = 'b.e13.B1850C5.ne16_g16.icesm131_d18O_fixer.Miocene.3xCO2.005.pop.h.TEMP.695101-700012.nc'
ds = x4c.load_dataset(os.path.join(dirpath, fname), comp='ocn', grid='g16', adjust_month=True)
ds
[8]:
<xarray.Dataset> Size: 18GB
Dimensions:               (moc_comp: 3, transport_comp: 5, transport_reg: 1,
                           z_t: 60, z_t_150m: 15, z_w: 60, z_w_top: 60,
                           z_w_bot: 60, lat_aux_grid: 91, moc_z: 61, nlat: 384,
                           nlon: 320, time: 600, d2: 2)
Coordinates:
  * z_t                   (z_t) float32 240B 500.0 1.5e+03 ... 5.375e+05
  * z_t_150m              (z_t_150m) float32 60B 500.0 1.5e+03 ... 1.45e+04
  * z_w                   (z_w) float32 240B 0.0 1e+03 2e+03 ... 5e+05 5.25e+05
  * z_w_top               (z_w_top) float32 240B 0.0 1e+03 ... 5e+05 5.25e+05
  * z_w_bot               (z_w_bot) float32 240B 1e+03 2e+03 ... 5.5e+05
  * lat_aux_grid          (lat_aux_grid) float32 364B -90.0 -88.0 ... 88.0 90.0
  * moc_z                 (moc_z) float32 244B 0.0 1e+03 ... 5.25e+05 5.5e+05
    ULONG                 (nlat, nlon) float64 983kB 343.5 344.8 ... 326.7 327.0
    ULAT                  (nlat, nlon) float64 983kB -87.53 -87.52 ... 72.64
    TLONG                 (nlat, nlon) float64 983kB 341.6 342.9 ... 326.5 326.8
    TLAT                  (nlat, nlon) float64 983kB -87.73 -87.72 ... 72.52
  * time                  (time) object 5kB 6951-02-01 00:00:00 ... 7001-01-0...
Dimensions without coordinates: moc_comp, transport_comp, transport_reg, nlat,
                                nlon, d2
Data variables: (12/54)
    moc_components        (moc_comp) |S256 768B b'Eulerian Mean' ... b'Submeso'
    transport_components  (transport_comp) |S256 1kB b'Total' ... b'Submeso A...
    transport_regions     (transport_reg) |S256 256B b'Global Ocean - Margina...
    dz                    (z_t) float32 240B 1e+03 1e+03 ... 2.5e+04 2.5e+04
    dzw                   (z_w) float32 240B 500.0 1e+03 ... 2.499e+04 2.5e+04
    KMT                   (nlat, nlon) float64 983kB 0.0 0.0 0.0 ... 0.0 0.0 0.0
    ...                    ...
    salinity_factor       float64 8B -0.00347
    sflux_factor          float64 8B 0.1
    nsurface_t            float64 8B 7.887e+04
    nsurface_u            float64 8B 7.669e+04
    time_bound            (time, d2) object 10kB 6951-01-01 00:00:00 ... 7001...
    TEMP                  (time, z_t, nlat, nlon) float32 18GB nan nan ... nan
Attributes: (12/14)
    title:           b.e13.B1850C5.ne16_g16.icesm131_d18O_fixer.Miocene.3xCO2...
    history:         none
    Conventions:     CF-1.0; http://www.cgd.ucar.edu/cms/eaton/netcdf/CF-curr...
    contents:        Diagnostic and Prognostic Variables
    source:          CCSM POP2, the CCSM Ocean Component
    revision:        $Id: tavg.F90 56176 2013-12-20 18:35:46Z mlevy@ucar.edu $
    ...              ...
    cell_methods:    cell_methods = time: mean ==> the variable values are av...
    nsteps_total:    101471200
    tavg_sum:        2678399.99999999
    tavg_sum_qflux:  2678400.0
    comp:            ocn
    grid:            g16
[9]:
ds_rgd = ds.x.regrid(dlon=1, dlat=1)
ds_rgd['TEMP']

LND#

[22]:
dirpath = '/glade/campaign/univ/ubrn0018/fengzhu/CESM_output/timeseries/b.e13.B1850C5.ne16_g16.icesm131_d18O_fixer.Miocene.3xCO2.005/lnd/proc/tseries/month_1'
fname = 'b.e13.B1850C5.ne16_g16.icesm131_d18O_fixer.Miocene.3xCO2.005.clm2.h0.QRUNOFF.695101-700012.nc'
ds = x4c.load_dataset(os.path.join(dirpath, fname), comp='lnd', grid='ne16', adjust_month=True)
ds
[22]:
<xarray.Dataset> Size: 34MB
Dimensions:       (levgrnd: 15, levlak: 10, lndgrid: 13826, time: 600,
                   hist_interval: 2)
Coordinates:
  * levgrnd       (levgrnd) float32 60B 0.007101 0.02792 0.06226 ... 21.33 35.18
  * levlak        (levlak) float32 40B 0.05 0.6 2.1 4.6 ... 25.6 34.33 44.78
  * time          (time) object 5kB 6951-02-01 00:00:00 ... 7001-01-01 00:00:00
Dimensions without coordinates: lndgrid, hist_interval
Data variables: (12/16)
    lon           (lndgrid) float32 55kB nan nan nan nan ... 132.5 137.5 135.0
    lat           (lndgrid) float32 55kB nan nan nan nan ... 37.91 37.91 36.74
    area          (lndgrid) float32 55kB nan nan nan ... 5.236e+04 5.234e+04
    topo          (lndgrid) float32 55kB 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0
    landfrac      (lndgrid) float32 55kB nan nan nan ... 0.04452 0.4756 0.4246
    landmask      (lndgrid) float64 111kB 0.0 0.0 0.0 0.0 ... 1.0 1.0 1.0 1.0
    ...            ...
    mscur         (time) int32 2kB 0 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
    nstep         (time) int32 2kB 121765488 121766832 ... 122638512 122640000
    time_bounds   (time, hist_interval) object 10kB 6951-01-01 00:00:00 ... 7...
    date_written  (time) |S8 5kB b'04/12/24' b'04/12/24' ... b'04/12/24'
    time_written  (time) |S8 5kB b'02:06:22' b'02:07:47' ... b'17:43:25'
    QRUNOFF       (time, lndgrid) float32 33MB nan nan ... 3.79e-05 3.454e-05
Attributes: (12/18)
    title:                                CLM History file information
    comment:                              NOTE: None of the variables are wei...
    Conventions:                          CF-1.0
    history:                              created on 04/12/24 02:06:22
    source:                               Community Land Model CLM4.0
    hostname:                             derecho
    ...                                   ...
    Initial_conditions_dataset:           b.e13.B1850C5.ne16_g16.icesm131_d18...
    PFT_physiological_constants_dataset:  pft-physiology.clm40.c130424.nc
    Time_constant_3Dvars_filename:        ./b.e13.B1850C5.ne16_g16.icesm131_d...
    Time_constant_3Dvars:                 ZSOI:DZSOI:WATSAT:SUCSAT:BSW:HKSAT
    comp:                                 lnd
    grid:                                 ne16
[24]:
ds_rgd = ds.x.regrid(dlon=1, dlat=1)
ds_rgd['QRUNOFF']
Regridding from [1, 13826] to [180, 360]
[24]:
<xarray.DataArray 'QRUNOFF' (time: 600, lat: 180, lon: 360)> Size: 156MB
array([[[8.0630916e-06, 8.0608379e-06, 8.0563250e-06, ...,
         8.0563250e-06, 8.0608379e-06, 8.0630916e-06],
        [1.1760803e-05, 1.1760803e-05, 1.1760803e-05, ...,
         1.1760803e-05, 1.1760803e-05, 1.1760803e-05],
        [6.8952781e-05, 6.8699723e-05, 6.8192989e-05, ...,
         6.8192989e-05, 6.8699723e-05, 6.8952781e-05],
        ...,
        [          nan,           nan,           nan, ...,
                   nan,           nan,           nan],
        [          nan,           nan,           nan, ...,
                   nan,           nan,           nan],
        [          nan,           nan,           nan, ...,
                   nan,           nan,           nan]],

       [[3.0942724e-06, 3.0934100e-06, 3.0916829e-06, ...,
         3.0916829e-06, 3.0934100e-06, 3.0942724e-06],
        [4.5093566e-06, 4.5093566e-06, 4.5093566e-06, ...,
         4.5093566e-06, 4.5093566e-06, 4.5093566e-06],
        [1.0732543e-05, 1.0705007e-05, 1.0649868e-05, ...,
         1.0649868e-05, 1.0705007e-05, 1.0732543e-05],
...
        [          nan,           nan,           nan, ...,
                   nan,           nan,           nan],
        [          nan,           nan,           nan, ...,
                   nan,           nan,           nan],
        [          nan,           nan,           nan, ...,
                   nan,           nan,           nan]],

       [[2.9342958e-05, 2.9340315e-05, 2.9335019e-05, ...,
         2.9335019e-05, 2.9340315e-05, 2.9342958e-05],
        [3.3681834e-05, 3.3681834e-05, 3.3681834e-05, ...,
         3.3681834e-05, 3.3681834e-05, 3.3681834e-05],
        [3.3989618e-05, 3.3988257e-05, 3.3985529e-05, ...,
         3.3985529e-05, 3.3988257e-05, 3.3989618e-05],
        ...,
        [          nan,           nan,           nan, ...,
                   nan,           nan,           nan],
        [          nan,           nan,           nan, ...,
                   nan,           nan,           nan],
        [          nan,           nan,           nan, ...,
                   nan,           nan,           nan]]], dtype=float32)
Coordinates:
  * time     (time) object 5kB 6951-02-01 00:00:00 ... 7001-01-01 00:00:00
  * lon      (lon) float64 3kB 0.5 1.5 2.5 3.5 4.5 ... 356.5 357.5 358.5 359.5
  * lat      (lat) float64 1kB -89.5 -88.5 -87.5 -86.5 ... 86.5 87.5 88.5 89.5

ICE#

[11]:
dirpath = '/glade/campaign/univ/ubrn0018/fengzhu/CESM_output/timeseries/b.e13.B1850C5.ne16_g16.icesm131_d18O_fixer.Miocene.3xCO2.005/ice/proc/tseries/month_1'
fname = 'b.e13.B1850C5.ne16_g16.icesm131_d18O_fixer.Miocene.3xCO2.005.cice.h.hi.695101-700012.nc'
ds = x4c.load_dataset(os.path.join(dirpath, fname), comp='ice', grid='g16', adjust_month=True)
ds
[11]:
<xarray.Dataset> Size: 310MB
Dimensions:      (nj: 384, ni: 320, nvertices: 4, time: 600, d2: 2)
Coordinates:
    TLON         (nj, ni) float32 492kB nan nan nan nan nan ... nan nan nan nan
    TLAT         (nj, ni) float32 492kB nan nan nan nan nan ... nan nan nan nan
    ULON         (nj, ni) float32 492kB nan nan nan nan nan ... nan nan nan nan
    ULAT         (nj, ni) float32 492kB nan nan nan nan nan ... nan nan nan nan
  * time         (time) object 5kB 6951-02-01 00:00:00 ... 7001-01-01 00:00:00
Dimensions without coordinates: nj, ni, nvertices, d2
Data variables: (12/17)
    tmask        (nj, ni) float32 492kB nan nan nan nan nan ... nan nan nan nan
    tarea        (nj, ni) float32 492kB nan nan nan nan nan ... nan nan nan nan
    uarea        (nj, ni) float32 492kB nan nan nan nan nan ... nan nan nan nan
    dxt          (nj, ni) float32 492kB nan nan nan nan nan ... nan nan nan nan
    dyt          (nj, ni) float32 492kB nan nan nan nan nan ... nan nan nan nan
    dxu          (nj, ni) float32 492kB nan nan nan nan nan ... nan nan nan nan
    ...           ...
    lont_bounds  (nj, ni, nvertices) float32 2MB 1e+30 1e+30 ... 1e+30 1e+30
    latt_bounds  (nj, ni, nvertices) float32 2MB 1e+30 1e+30 ... 1e+30 1e+30
    lonu_bounds  (nj, ni, nvertices) float32 2MB 1e+30 1e+30 ... 1e+30 1e+30
    latu_bounds  (nj, ni, nvertices) float32 2MB 1e+30 1e+30 ... 1e+30 1e+30
    time_bounds  (time, d2) object 10kB 6951-01-01 00:00:00 ... 7001-01-01 00...
    hi           (time, nj, ni) float32 295MB nan nan nan nan ... nan nan nan
Attributes:
    title:        b.e13.B1850C5.ne16_g16.icesm131_d18O_fixer.Miocene.3xCO2.005
    contents:     Diagnostic and Prognostic Variables
    source:       sea ice model: Community Ice Code (CICE)
    comment:      All years have exactly 365 days
    comment2:     File written on model date 69510201
    comment3:     seconds elapsed into model date:      0
    conventions:  CF-1.0
    history:      This dataset was created on 2024-04-12 at 02:06
    comp:         ice
    grid:         g16
[12]:
ds_rgd = ds.x.regrid(dlon=1, dlat=1)
ds_rgd['hi']
/glade/work/fengzhu/conda-envs/xpp-env/lib/python3.11/site-packages/xesmf/smm.py:131: UserWarning: Input array is not C_CONTIGUOUS. Will affect performance.
  warnings.warn('Input array is not C_CONTIGUOUS. ' 'Will affect performance.')
/glade/work/fengzhu/conda-envs/xpp-env/lib/python3.11/site-packages/xesmf/smm.py:131: UserWarning: Input array is not C_CONTIGUOUS. Will affect performance.
  warnings.warn('Input array is not C_CONTIGUOUS. ' 'Will affect performance.')
[12]:
<xarray.DataArray 'hi' (time: 600, lat: 180, lon: 360)> Size: 156MB
array([[[0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        ...,
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.]],

       [[0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        ...,
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.]],

       [[0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        ...,
...
        ...,
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.]],

       [[0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        ...,
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.]],

       [[0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        ...,
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.]]], dtype=float32)
Coordinates:
  * time                (time) object 5kB 6951-02-01 00:00:00 ... 7001-01-01 ...
  * lon                 (lon) float64 3kB 0.5 1.5 2.5 3.5 ... 357.5 358.5 359.5
    latitude_longitude  float64 8B nan
  * lat                 (lat) float64 1kB -89.5 -88.5 -87.5 ... 87.5 88.5 89.5