import io
import s3fs
import xarray as xr
import numpy as np
from datetime import datetime
from pathlib import Path
import hvplot
import hvplot.xarray
import earthaccess
From the PO.DAAC Cookbook, to access the GitHub version of the notebook, follow this link.
Working with SWOT Level 2 Water Mask Raster Image Data Product:
In AWS Cloud Version
Authors: Nicholas Tarpinian, PO.DAAC | Catalina Taglialatela (JPL, PO.DAAC)
Summary & Learning Objectives
Notebook showcasing how to work with multiple files from the SWOT Raster Image data product version C (aka 2.0) in the cloud
- Utilizing the
earthaccess
Python package. For more information visit: https://nsidc.github.io/earthaccess/ - Option to query the new dataset based on user’s choice; choosing between two resolutions either by ‘100m’ or ‘250m’.
- Visualizing multiple raster images on a single map.
- Stacking multiple raster images and creating a time dimension to analyze over time.
- Adjusting images based on quality flag
Requirements
1. Compute environment
This tutorial is written to run in the following environment: - AWS instance running in us-west-2: NASA Earthdata Cloud data in S3 can be directly accessed via an s3fs session; this access is limited to requests made within the US West (Oregon) (code: us-west-2
) AWS region. - This workflow as written works on a 14.8 GB RAM, upto 3.7 CPU cloud compute instance type. Smaller instances tent to crash.
2. Earthdata Login
An Earthdata Login account is required to access data, as well as discover restricted data, from the NASA Earthdata system. Thus, to access NASA data, you need Earthdata Login. Please visit https://urs.earthdata.nasa.gov to register and manage your Earthdata Login account. This account is free to create and only takes a moment to set up.
Import libraries
Authentication with earthaccess
In this notebook, we will be calling the authentication in the below cell.
Search for SWOT Raster products using earthaccess
Each dataset has its own unique collection concept ID. For the SWOT_L2_HR_Raster_2.0 dataset, we can find the collection ID here.
For this tutorial, we are looking at the Lake Mead Reservoir in the United States.
We used bbox finder to get the exact coordinates for our area of interest.
raster_results = earthaccess.search_data(
short_name = 'SWOT_L2_HR_RASTER_2.0',
bounding_box=(-115.112686,35.740939,-114.224167,36.937819),
temporal =('2024-02-01 12:00:00', '2024-02-01 23:59:59'),
granule_name = '*_100m_*', #specify we are interested in the 100m standard raster
count =200
)
Granules found: 2
Visualizing Multiple Tiles
Let’s now visualize multiple raster tiles that we searched and explore the data.
Utilizing xarray.open_mfdataset which supports the opening of multiple files.
ds = xr.open_mfdataset(earthaccess.open(raster_results), engine='h5netcdf',combine='nested', concat_dim='x')
ds
Opening 2 granules, approx size: 0.07 GB
using endpoint: https://archive.swot.podaac.earthdata.nasa.gov/s3credentials
<xarray.Dataset> Dimensions: (y: 2784, x: 3074) Coordinates: * y (y) float64 3.899e+06 3.899e+06 ... 4.177e+06 * x (x) float64 5.391e+05 5.392e+05 ... 7.217e+05 Data variables: (12/39) crs (x) object b'1' b'1' b'1' b'1' ... b'1' b'1' b'1' longitude (y, x) float64 dask.array<chunksize=(512, 513), meta=np.ndarray> latitude (y, x) float64 dask.array<chunksize=(512, 513), meta=np.ndarray> wse (y, x) float32 dask.array<chunksize=(768, 769), meta=np.ndarray> wse_qual (y, x) float32 dask.array<chunksize=(2784, 1538), meta=np.ndarray> wse_qual_bitwise (y, x) float64 dask.array<chunksize=(768, 769), meta=np.ndarray> ... ... load_tide_fes (y, x) float32 dask.array<chunksize=(768, 769), meta=np.ndarray> load_tide_got (y, x) float32 dask.array<chunksize=(768, 769), meta=np.ndarray> pole_tide (y, x) float32 dask.array<chunksize=(768, 769), meta=np.ndarray> model_dry_tropo_cor (y, x) float32 dask.array<chunksize=(768, 769), meta=np.ndarray> model_wet_tropo_cor (y, x) float32 dask.array<chunksize=(768, 769), meta=np.ndarray> iono_cor_gim_ka (y, x) float32 dask.array<chunksize=(768, 769), meta=np.ndarray> Attributes: (12/49) Conventions: CF-1.7 title: Level 2 KaRIn High Rate Raster Data Product source: Ka-band radar interferometer history: 2024-02-05T08:37:45Z : Creation platform: SWOT references: V1.2.1 ... ... x_min: 539100.0 x_max: 692800.0 y_min: 4023100.0 y_max: 4176900.0 institution: CNES product_version: 01
- y: 2784
- x: 3074
- y(y)float643.899e+06 3.899e+06 ... 4.177e+06
- long_name :
- y coordinate of projection
- standard_name :
- projection_y_coordinate
- units :
- m
- valid_min :
- -20000000.0
- valid_max :
- 20000000.0
- comment :
- UTM northing coordinate of the pixel.
array([3898600., 3898700., 3898800., ..., 4176700., 4176800., 4176900.])
- x(x)float645.391e+05 5.392e+05 ... 7.217e+05
- long_name :
- x coordinate of projection
- standard_name :
- projection_x_coordinate
- units :
- m
- valid_min :
- -10000000.0
- valid_max :
- 10000000.0
- comment :
- UTM easting coordinate of the pixel.
array([539100., 539200., 539300., ..., 721500., 721600., 721700.])
- crs(x)objectb'1' b'1' b'1' ... b'1' b'1' b'1'
- long_name :
- CRS Definition
- grid_mapping_name :
- transverse_mercator
- projected_crs_name :
- WGS 84 / UTM zone 11N
- geographic_crs_name :
- WGS 84
- reference_ellipsoid_name :
- WGS 84
- horizontal_datum_name :
- WGS_1984
- prime_meridian_name :
- Greenwich
- false_easting :
- 500000.0
- false_northing :
- 0.0
- longitude_of_central_meridian :
- -117.0
- longitude_of_prime_meridian :
- 0.0
- latitude_of_projection_origin :
- 0.0
- scale_factor_at_central_meridian :
- 0.9996
- semi_major_axis :
- 6378137.0
- inverse_flattening :
- 298.257223563
- crs_wkt :
- PROJCS["WGS 84 / UTM zone 11N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","32611"]]
- spatial_ref :
- PROJCS["WGS 84 / UTM zone 11N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","32611"]]
- comment :
- UTM zone coordinate reference system.
array([b'1', b'1', b'1', ..., b'1', b'1', b'1'], dtype=object)
- longitude(y, x)float64dask.array<chunksize=(512, 513), meta=np.ndarray>
- long_name :
- longitude (degrees East)
- standard_name :
- longitude
- grid_mapping :
- crs
- units :
- degrees_east
- valid_min :
- -180.0
- valid_max :
- 180.0
- comment :
- Geodetic longitude [-180,180) (east of the Greenwich meridian) of the pixel.
Array Chunk Bytes 65.29 MiB 2.87 MiB Shape (2784, 3074) (734, 513) Dask graph 30 chunks in 23 graph layers Data type float64 numpy.ndarray - latitude(y, x)float64dask.array<chunksize=(512, 513), meta=np.ndarray>
- long_name :
- latitude (positive N, negative S)
- standard_name :
- latitude
- grid_mapping :
- crs
- units :
- degrees_north
- valid_min :
- -80.0
- valid_max :
- 80.0
- comment :
- Geodetic latitude [-80,80] (degrees north of equator) of the pixel.
Array Chunk Bytes 65.29 MiB 2.87 MiB Shape (2784, 3074) (734, 513) Dask graph 30 chunks in 23 graph layers Data type float64 numpy.ndarray - wse(y, x)float32dask.array<chunksize=(768, 769), meta=np.ndarray>
- long_name :
- water surface elevation above geoid
- grid_mapping :
- crs
- units :
- m
- quality_flag :
- wse_qual
- valid_min :
- -1500.0
- valid_max :
- 15000.0
- comment :
- Water surface elevation of the pixel above the geoid and after using models to subtract the effects of tides (solid_earth_tide, load_tide_fes, pole_tide).
Array Chunk Bytes 32.65 MiB 3.66 MiB Shape (2784, 3074) (1247, 769) Dask graph 12 chunks in 23 graph layers Data type float32 numpy.ndarray - wse_qual(y, x)float32dask.array<chunksize=(2784, 1538), meta=np.ndarray>
- long_name :
- summary quality indicator for the water surface elevation
- standard_name :
- status_flag
- grid_mapping :
- crs
- flag_meanings :
- good suspect degraded bad
- flag_values :
- [0 1 2 3]
- valid_min :
- 0
- valid_max :
- 3
- comment :
- Summary quality indicator for the water surface elevation quantities. A value of 0 indicates a nominal measurement, 1 indicates a suspect measurement, 2 indicates a degraded measurement, and 3 indicates a bad measurement.
Array Chunk Bytes 32.65 MiB 16.33 MiB Shape (2784, 3074) (2784, 1538) Dask graph 2 chunks in 21 graph layers Data type float32 numpy.ndarray - wse_qual_bitwise(y, x)float64dask.array<chunksize=(768, 769), meta=np.ndarray>
- long_name :
- bitwise quality indicator for the water surface elevation
- standard_name :
- status_flag
- grid_mapping :
- crs
- flag_meanings :
- classification_qual_suspect geolocation_qual_suspect large_uncert_suspect bright_land few_pixels far_range_suspect near_range_suspect classification_qual_degraded geolocation_qual_degraded dark_water_degraded low_coherence_water_degraded value_bad outside_data_window no_pixels outside_scene_bounds inner_swath missing_karin_data
- flag_masks :
- [ 2 4 32 128 4096 8192 16384 262144 524288 1048576 2097152 16777216 67108864 268435456 536870912 1073741824 2147483648]
- valid_min :
- 0
- valid_max :
- 4114378918
- comment :
- Bitwise quality indicator for the water surface elevation quantities. If this word is interpreted as an unsigned integer, a value of 0 indicates good data, positive values less than 32768 represent suspect data, values greater than or equal to 32768 but less than 8388608 represent degraded data, and values greater than or equal to 8388608 represent bad data.
Array Chunk Bytes 65.29 MiB 7.32 MiB Shape (2784, 3074) (1247, 769) Dask graph 12 chunks in 23 graph layers Data type float64 numpy.ndarray - wse_uncert(y, x)float32dask.array<chunksize=(768, 769), meta=np.ndarray>
- long_name :
- uncertainty in the water surface elevation
- grid_mapping :
- crs
- units :
- m
- valid_min :
- 0.0
- valid_max :
- 999999.0
- comment :
- 1-sigma uncertainty in the water surface elevation.
Array Chunk Bytes 32.65 MiB 3.66 MiB Shape (2784, 3074) (1247, 769) Dask graph 12 chunks in 23 graph layers Data type float32 numpy.ndarray - water_area(y, x)float32dask.array<chunksize=(768, 769), meta=np.ndarray>
- long_name :
- water surface area
- grid_mapping :
- crs
- units :
- m^2
- quality_flag :
- water_area_qual
- valid_min :
- -2000000.0
- valid_max :
- 2000000000.0
- comment :
- Surface area of the water pixels.
Array Chunk Bytes 32.65 MiB 3.66 MiB Shape (2784, 3074) (1247, 769) Dask graph 12 chunks in 23 graph layers Data type float32 numpy.ndarray - water_area_qual(y, x)float32dask.array<chunksize=(2784, 1538), meta=np.ndarray>
- long_name :
- summary quality indicator for the water surface area
- standard_name :
- status_flag
- grid_mapping :
- crs
- flag_meanings :
- good suspect degraded bad
- flag_values :
- [0 1 2 3]
- valid_min :
- 0
- valid_max :
- 3
- comment :
- Summary quality indicator for the water surface area and water fraction quantities. A value of 0 indicates a nominal measurement, 1 indicates a suspect measurement, 2 indicates a degraded measurement, and 3 indicates a bad measurement.
Array Chunk Bytes 32.65 MiB 16.33 MiB Shape (2784, 3074) (2784, 1538) Dask graph 2 chunks in 21 graph layers Data type float32 numpy.ndarray - water_area_qual_bitwise(y, x)float64dask.array<chunksize=(768, 769), meta=np.ndarray>
- long_name :
- bitwise quality indicator for the water surface area
- standard_name :
- status_flag
- grid_mapping :
- crs
- flag_meanings :
- classification_qual_suspect geolocation_qual_suspect water_fraction_suspect large_uncert_suspect bright_land low_coherence_water_suspect few_pixels far_range_suspect near_range_suspect classification_qual_degraded geolocation_qual_degraded value_bad outside_data_window no_pixels outside_scene_bounds inner_swath missing_karin_data
- flag_masks :
- [ 2 4 8 32 128 256 4096 8192 16384 262144 524288 16777216 67108864 268435456 536870912 1073741824 2147483648]
- valid_min :
- 0
- valid_max :
- 4111233454
- comment :
- Bitwise quality indicator for the water surface area and water fraction quantities. If this word is interpreted as an unsigned integer, a value of 0 indicates good data, positive values less than 32768 represent suspect data, values greater than or equal to 32768 but less than 8388608 represent degraded data, and values greater than or equal to 8388608 represent bad data.
Array Chunk Bytes 65.29 MiB 7.32 MiB Shape (2784, 3074) (1247, 769) Dask graph 12 chunks in 23 graph layers Data type float64 numpy.ndarray - water_area_uncert(y, x)float32dask.array<chunksize=(768, 769), meta=np.ndarray>
- long_name :
- uncertainty in the water surface area
- grid_mapping :
- crs
- units :
- m^2
- valid_min :
- 0.0
- valid_max :
- 2000000000.0
- comment :
- 1-sigma uncertainty in the water surface area.
Array Chunk Bytes 32.65 MiB 3.66 MiB Shape (2784, 3074) (1247, 769) Dask graph 12 chunks in 23 graph layers Data type float32 numpy.ndarray - water_frac(y, x)float32dask.array<chunksize=(768, 769), meta=np.ndarray>
- long_name :
- water fraction
- grid_mapping :
- crs
- units :
- 1
- quality_flag :
- water_area_qual
- valid_min :
- -1000.0
- valid_max :
- 10000.0
- comment :
- Fraction of the pixel that is water.
Array Chunk Bytes 32.65 MiB 3.66 MiB Shape (2784, 3074) (1247, 769) Dask graph 12 chunks in 23 graph layers Data type float32 numpy.ndarray - water_frac_uncert(y, x)float32dask.array<chunksize=(768, 769), meta=np.ndarray>
- long_name :
- uncertainty in the water fraction
- grid_mapping :
- crs
- units :
- 1
- valid_min :
- 0.0
- valid_max :
- 999999.0
- comment :
- 1-sigma uncertainty in the water fraction.
Array Chunk Bytes 32.65 MiB 3.66 MiB Shape (2784, 3074) (1247, 769) Dask graph 12 chunks in 23 graph layers Data type float32 numpy.ndarray - sig0(y, x)float32dask.array<chunksize=(768, 769), meta=np.ndarray>
- long_name :
- sigma0
- grid_mapping :
- crs
- units :
- 1
- quality_flag :
- sig0_qual
- valid_min :
- -999999.0
- valid_max :
- 999999.0
- comment :
- Normalized radar cross section (sigma0) in real, linear units (not decibels). The value may be negative due to noise subtraction.
Array Chunk Bytes 32.65 MiB 3.66 MiB Shape (2784, 3074) (1247, 769) Dask graph 12 chunks in 23 graph layers Data type float32 numpy.ndarray - sig0_qual(y, x)float32dask.array<chunksize=(2784, 1538), meta=np.ndarray>
- long_name :
- summary quality indicator for the sigma0
- standard_name :
- status_flag
- grid_mapping :
- crs
- flag_meanings :
- good suspect degraded bad
- flag_values :
- [0 1 2 3]
- valid_min :
- 0
- valid_max :
- 3
- comment :
- Summary quality indicator for the sigma0 quantities. A value of 0 indicates a nominal measurement, 1 indicates a suspect measurement, 2 indicates a degraded measurement, and 3 indicates a bad measurement.
Array Chunk Bytes 32.65 MiB 16.33 MiB Shape (2784, 3074) (2784, 1538) Dask graph 2 chunks in 21 graph layers Data type float32 numpy.ndarray - sig0_qual_bitwise(y, x)float64dask.array<chunksize=(768, 769), meta=np.ndarray>
- long_name :
- bitwise quality indicator for the sigma0
- standard_name :
- status_flag
- grid_mapping :
- crs
- flag_meanings :
- sig0_qual_suspect classification_qual_suspect geolocation_qual_suspect large_uncert_suspect bright_land low_coherence_water_suspect few_pixels far_range_suspect near_range_suspect sig0_qual_degraded classification_qual_degraded geolocation_qual_degraded value_bad outside_data_window no_pixels outside_scene_bounds inner_swath missing_karin_data
- flag_masks :
- [ 1 2 4 32 128 256 4096 8192 16384 131072 262144 524288 16777216 67108864 268435456 536870912 1073741824 2147483648]
- valid_min :
- 0
- valid_max :
- 4111364519
- comment :
- Bitwise quality indicator for the sigma0 quantities. If this word is interpreted as an unsigned integer, a value of 0 indicates good data, positive values less than 32768 represent suspect data, values greater than or equal to 32768 but less than 8388608 represent degraded data, and values greater than or equal to 8388608 represent bad data.
Array Chunk Bytes 65.29 MiB 7.32 MiB Shape (2784, 3074) (1247, 769) Dask graph 12 chunks in 23 graph layers Data type float64 numpy.ndarray - sig0_uncert(y, x)float32dask.array<chunksize=(768, 769), meta=np.ndarray>
- long_name :
- uncertainty in sigma0
- grid_mapping :
- crs
- units :
- 1
- valid_min :
- -999999.0
- valid_max :
- 999999.0
- comment :
- 1-sigma uncertainty in sigma0. The value is provided in linear units. This value is a one-sigma additive (not multiplicative) uncertainty term, which can be added to or subtracted from sigma0.
Array Chunk Bytes 32.65 MiB 3.66 MiB Shape (2784, 3074) (1247, 769) Dask graph 12 chunks in 23 graph layers Data type float32 numpy.ndarray - inc(y, x)float32dask.array<chunksize=(768, 769), meta=np.ndarray>
- long_name :
- incidence angle
- grid_mapping :
- crs
- units :
- degrees
- valid_min :
- 0.0
- valid_max :
- 90.0
- comment :
- Incidence angle.
Array Chunk Bytes 32.65 MiB 3.66 MiB Shape (2784, 3074) (1247, 769) Dask graph 12 chunks in 23 graph layers Data type float32 numpy.ndarray - cross_track(y, x)float32dask.array<chunksize=(768, 769), meta=np.ndarray>
- long_name :
- approximate cross-track location
- grid_mapping :
- crs
- units :
- m
- valid_min :
- -75000.0
- valid_max :
- 75000.0
- comment :
- Approximate cross-track location of the pixel.
Array Chunk Bytes 32.65 MiB 3.66 MiB Shape (2784, 3074) (1247, 769) Dask graph 12 chunks in 23 graph layers Data type float32 numpy.ndarray - illumination_time(y, x)datetime64[ns]dask.array<chunksize=(512, 513), meta=np.ndarray>
- long_name :
- time of illumination of each pixel (UTC)
- standard_name :
- time
- tai_utc_difference :
- 37.0
- leap_second :
- 0000-00-00T00:00:00Z
- comment :
- Time of measurement in seconds in the UTC time scale since 1 Jan 2000 00:00:00 UTC. [tai_utc_difference] is the difference between TAI and UTC reference time (seconds) for the first measurement of the data set. If a leap second occurs within the data set, the attribute leap_second is set to the UTC time at which the leap second occurs.
Array Chunk Bytes 65.29 MiB 2.87 MiB Shape (2784, 3074) (734, 513) Dask graph 30 chunks in 23 graph layers Data type datetime64[ns] numpy.ndarray - illumination_time_tai(y, x)datetime64[ns]dask.array<chunksize=(512, 513), meta=np.ndarray>
- long_name :
- time of illumination of each pixel (TAI)
- standard_name :
- time
- comment :
- Time of measurement in seconds in the TAI time scale since 1 Jan 2000 00:00:00 TAI. This time scale contains no leap seconds. The difference (in seconds) with time in UTC is given by the attribute [illumination_time:tai_utc_difference].
Array Chunk Bytes 65.29 MiB 2.87 MiB Shape (2784, 3074) (734, 513) Dask graph 30 chunks in 23 graph layers Data type datetime64[ns] numpy.ndarray - n_wse_pix(y, x)float64dask.array<chunksize=(768, 769), meta=np.ndarray>
- long_name :
- number of water surface elevation pixels
- grid_mapping :
- crs
- units :
- l
- valid_min :
- 0
- valid_max :
- 999999
- comment :
- Number of pixel cloud samples used in water surface elevation aggregation.
Array Chunk Bytes 65.29 MiB 7.32 MiB Shape (2784, 3074) (1247, 769) Dask graph 12 chunks in 23 graph layers Data type float64 numpy.ndarray - n_water_area_pix(y, x)float64dask.array<chunksize=(768, 769), meta=np.ndarray>
- long_name :
- number of water surface area pixels
- grid_mapping :
- crs
- units :
- l
- valid_min :
- 0
- valid_max :
- 999999
- comment :
- Number of pixel cloud samples used in water surface area and water fraction aggregation.
Array Chunk Bytes 65.29 MiB 7.32 MiB Shape (2784, 3074) (1247, 769) Dask graph 12 chunks in 23 graph layers Data type float64 numpy.ndarray - n_sig0_pix(y, x)float64dask.array<chunksize=(768, 769), meta=np.ndarray>
- long_name :
- number of sigma0 pixels
- grid_mapping :
- crs
- units :
- l
- valid_min :
- 0
- valid_max :
- 999999
- comment :
- Number of pixel cloud samples used in sigma0 aggregation.
Array Chunk Bytes 65.29 MiB 7.32 MiB Shape (2784, 3074) (1247, 769) Dask graph 12 chunks in 23 graph layers Data type float64 numpy.ndarray - n_other_pix(y, x)float64dask.array<chunksize=(768, 769), meta=np.ndarray>
- long_name :
- number of other pixels
- grid_mapping :
- crs
- units :
- l
- valid_min :
- 0
- valid_max :
- 999999
- comment :
- Number of pixel cloud samples used in aggregation of quantities not related to water surface elevation, water surface area, water fraction or sigma0.
Array Chunk Bytes 65.29 MiB 7.32 MiB Shape (2784, 3074) (1247, 769) Dask graph 12 chunks in 23 graph layers Data type float64 numpy.ndarray - dark_frac(y, x)float32dask.array<chunksize=(768, 769), meta=np.ndarray>
- long_name :
- fractional area of dark water
- grid_mapping :
- crs
- units :
- l
- valid_min :
- -1000.0
- valid_max :
- 10000.0
- comment :
- Fraction of pixel water surface area covered by dark water.
Array Chunk Bytes 32.65 MiB 3.66 MiB Shape (2784, 3074) (1247, 769) Dask graph 12 chunks in 23 graph layers Data type float32 numpy.ndarray - ice_clim_flag(y, x)float32dask.array<chunksize=(2784, 1538), meta=np.ndarray>
- long_name :
- climatological ice cover flag
- standard_name :
- status_flag
- source :
- UNC
- grid_mapping :
- crs
- flag_meanings :
- no_ice_cover uncertain_ice_cover full_ice_cover
- flag_values :
- [0 1 2]
- valid_min :
- 0
- valid_max :
- 2
- comment :
- Climatological ice cover flag indicating whether the pixel is ice-covered on the day of the observation based on external climatological information (not the SWOT measurement). Values of 0, 1, and 2 indicate that the pixel is likely not ice covered, may or may not be partially or fully ice covered, and likely fully ice covered, respectively.
Array Chunk Bytes 32.65 MiB 16.33 MiB Shape (2784, 3074) (2784, 1538) Dask graph 2 chunks in 21 graph layers Data type float32 numpy.ndarray - ice_dyn_flag(y, x)float32dask.array<chunksize=(2784, 1538), meta=np.ndarray>
- long_name :
- dynamic ice cover flag
- standard_name :
- status_flag
- source :
- UNC
- grid_mapping :
- crs
- flag_meanings :
- no_ice_cover partial_ice_cover full_ice_cover
- flag_values :
- [0 1 2]
- valid_min :
- 0
- valid_max :
- 2
- comment :
- Dynamic ice cover flag indicating whether the surface is ice-covered on the day of the observation based on analysis of external satellite optical data. Values of 0, 1, and 2 indicate that the pixel is not ice covered, partially ice covered, and fully ice covered, respectively.
Array Chunk Bytes 32.65 MiB 16.33 MiB Shape (2784, 3074) (2784, 1538) Dask graph 2 chunks in 21 graph layers Data type float32 numpy.ndarray - layover_impact(y, x)float32dask.array<chunksize=(768, 769), meta=np.ndarray>
- long_name :
- layover impact
- grid_mapping :
- crs
- units :
- m
- valid_min :
- -999999.0
- valid_max :
- 999999.0
- comment :
- Estimate of the water surface elevation error caused by layover.
Array Chunk Bytes 32.65 MiB 3.66 MiB Shape (2784, 3074) (1247, 769) Dask graph 12 chunks in 23 graph layers Data type float32 numpy.ndarray - sig0_cor_atmos_model(y, x)float32dask.array<chunksize=(768, 769), meta=np.ndarray>
- long_name :
- two-way atmospheric correction to sigma0 from model
- source :
- European Centre for Medium-Range Weather Forecasts
- institution :
- ECMWF
- grid_mapping :
- crs
- units :
- 1
- valid_min :
- 1.0
- valid_max :
- 10.0
- comment :
- Atmospheric correction to sigma0 from weather model data as a linear power multiplier (not decibels). sig0_cor_atmos_model is already applied in computing sig0.
Array Chunk Bytes 32.65 MiB 3.66 MiB Shape (2784, 3074) (1247, 769) Dask graph 12 chunks in 23 graph layers Data type float32 numpy.ndarray - height_cor_xover(y, x)float32dask.array<chunksize=(768, 769), meta=np.ndarray>
- long_name :
- height correction from KaRIn crossovers
- grid_mapping :
- crs
- units :
- m
- valid_min :
- -10.0
- valid_max :
- 10.0
- comment :
- Height correction from KaRIn crossover calibration. The correction is applied before geolocation but reported as an equivalent height correction.
Array Chunk Bytes 32.65 MiB 3.66 MiB Shape (2784, 3074) (1247, 769) Dask graph 12 chunks in 23 graph layers Data type float32 numpy.ndarray - geoid(y, x)float32dask.array<chunksize=(768, 769), meta=np.ndarray>
- long_name :
- geoid height
- standard_name :
- geoid_height_above_reference_ellipsoid
- source :
- EGM2008 (Pavlis et al., 2012)
- grid_mapping :
- crs
- units :
- m
- valid_min :
- -150.0
- valid_max :
- 150.0
- comment :
- Geoid height above the reference ellipsoid with a correction to refer the value to the mean tide system, i.e. includes the permanent tide (zero frequency).
Array Chunk Bytes 32.65 MiB 3.66 MiB Shape (2784, 3074) (1247, 769) Dask graph 12 chunks in 23 graph layers Data type float32 numpy.ndarray - solid_earth_tide(y, x)float32dask.array<chunksize=(768, 769), meta=np.ndarray>
- long_name :
- solid Earth tide height
- source :
- Cartwright and Taylor (1971) and Cartwright and Edden (1973)
- grid_mapping :
- crs
- units :
- m
- valid_min :
- -1.0
- valid_max :
- 1.0
- comment :
- Solid-Earth (body) tide height. The zero-frequency permanent tide component is not included.
Array Chunk Bytes 32.65 MiB 3.66 MiB Shape (2784, 3074) (1247, 769) Dask graph 12 chunks in 23 graph layers Data type float32 numpy.ndarray - load_tide_fes(y, x)float32dask.array<chunksize=(768, 769), meta=np.ndarray>
- long_name :
- geocentric load tide height (FES)
- source :
- FES2014b (Carrere et al., 2016)
- institution :
- LEGOS/CNES
- grid_mapping :
- crs
- units :
- m
- valid_min :
- -0.2
- valid_max :
- 0.2
- comment :
- Geocentric load tide height. The effect of the ocean tide loading of the Earth’s crust.
Array Chunk Bytes 32.65 MiB 3.66 MiB Shape (2784, 3074) (1247, 769) Dask graph 12 chunks in 23 graph layers Data type float32 numpy.ndarray - load_tide_got(y, x)float32dask.array<chunksize=(768, 769), meta=np.ndarray>
- long_name :
- geocentric load tide height (GOT)
- source :
- GOT4.10c (Ray, 2013)
- institution :
- GSFC
- grid_mapping :
- crs
- units :
- m
- valid_min :
- -0.2
- valid_max :
- 0.2
- comment :
- Geocentric load tide height. The effect of the ocean tide loading of the Earth’s crust. This value is reported for reference but is not applied to the reported height.
Array Chunk Bytes 32.65 MiB 3.66 MiB Shape (2784, 3074) (1247, 769) Dask graph 12 chunks in 23 graph layers Data type float32 numpy.ndarray - pole_tide(y, x)float32dask.array<chunksize=(768, 769), meta=np.ndarray>
- long_name :
- geocentric pole tide height
- source :
- Wahr (1985) and Desai et al. (2015)
- grid_mapping :
- crs
- units :
- m
- valid_min :
- -0.2
- valid_max :
- 0.2
- comment :
- Geocentric pole tide height. The total of the contribution from the solid-Earth (body) pole tide height and the load pole tide height (i.e., the effect of the ocean pole tide loading of the Earth’s crust).
Array Chunk Bytes 32.65 MiB 3.66 MiB Shape (2784, 3074) (1247, 769) Dask graph 12 chunks in 23 graph layers Data type float32 numpy.ndarray - model_dry_tropo_cor(y, x)float32dask.array<chunksize=(768, 769), meta=np.ndarray>
- long_name :
- dry troposphere vertical correction
- source :
- European Centre for Medium-Range Weather Forecasts
- institution :
- ECMWF
- grid_mapping :
- crs
- units :
- m
- valid_min :
- -3.0
- valid_max :
- -1.5
- comment :
- Equivalent vertical correction due to dry troposphere delay. The reported water surface elevation, latitude and longitude are computed after adding negative media corrections to uncorrected range along slant-range paths, accounting for the differential delay between the two KaRIn antennas. The equivalent vertical correction is computed by applying obliquity factors to the slant-path correction. Adding the reported correction to the reported water surface elevation results in the uncorrected pixel height.
Array Chunk Bytes 32.65 MiB 3.66 MiB Shape (2784, 3074) (1247, 769) Dask graph 12 chunks in 23 graph layers Data type float32 numpy.ndarray - model_wet_tropo_cor(y, x)float32dask.array<chunksize=(768, 769), meta=np.ndarray>
- long_name :
- wet troposphere vertical correction
- source :
- European Centre for Medium-Range Weather Forecasts
- institution :
- ECMWF
- grid_mapping :
- crs
- units :
- m
- valid_min :
- -1.0
- valid_max :
- 0.0
- comment :
- Equivalent vertical correction due to wet troposphere delay. The reported water surface elevation, latitude and longitude are computed after adding negative media corrections to uncorrected range along slant-range paths, accounting for the differential delay between the two KaRIn antennas. The equivalent vertical correction is computed by applying obliquity factors to the slant-path correction. Adding the reported correction to the reported water surface elevation results in the uncorrected pixel height.
Array Chunk Bytes 32.65 MiB 3.66 MiB Shape (2784, 3074) (1247, 769) Dask graph 12 chunks in 23 graph layers Data type float32 numpy.ndarray - iono_cor_gim_ka(y, x)float32dask.array<chunksize=(768, 769), meta=np.ndarray>
- long_name :
- ionosphere vertical correction
- source :
- Global Ionosphere Maps
- institution :
- JPL
- grid_mapping :
- crs
- units :
- m
- valid_min :
- -0.5
- valid_max :
- 0.0
- comment :
- Equivalent vertical correction due to ionosphere delay. The reported water surface elevation, latitude and longitude are computed after adding negative media corrections to uncorrected range along slant-range paths, accounting for the differential delay between the two KaRIn antennas. The equivalent vertical correction is computed by applying obliquity factors to the slant-path correction. Adding the reported correction to the reported water surface elevation results in the uncorrected pixel height.
Array Chunk Bytes 32.65 MiB 3.66 MiB Shape (2784, 3074) (1247, 769) Dask graph 12 chunks in 23 graph layers Data type float32 numpy.ndarray
- yPandasIndex
PandasIndex(Float64Index([3898600.0, 3898700.0, 3898800.0, 3898900.0, 3899000.0, 3899100.0, 3899200.0, 3899300.0, 3899400.0, 3899500.0, ... 4176000.0, 4176100.0, 4176200.0, 4176300.0, 4176400.0, 4176500.0, 4176600.0, 4176700.0, 4176800.0, 4176900.0], dtype='float64', name='y', length=2784))
- xPandasIndex
PandasIndex(Float64Index([539100.0, 539200.0, 539300.0, 539400.0, 539500.0, 539600.0, 539700.0, 539800.0, 539900.0, 540000.0, ... 720800.0, 720900.0, 721000.0, 721100.0, 721200.0, 721300.0, 721400.0, 721500.0, 721600.0, 721700.0], dtype='float64', name='x', length=3074))
- Conventions :
- CF-1.7
- title :
- Level 2 KaRIn High Rate Raster Data Product
- source :
- Ka-band radar interferometer
- history :
- 2024-02-05T08:37:45Z : Creation
- platform :
- SWOT
- references :
- V1.2.1
- reference_document :
- JPL D-56416 - Revision C - December 8, 2023
- contact :
- podaac@podaac.jpl.nasa.gov
- cycle_number :
- 10
- pass_number :
- 218
- scene_number :
- 45
- tile_numbers :
- [88 89 90 91 88 89 90 91]
- tile_names :
- 218_088L, 218_089L, 218_090L, 218_091L, 218_088R, 218_089R, 218_090R, 218_091R
- tile_polarizations :
- H, H, H, H, V, V, V, V
- coordinate_reference_system :
- Universal Transverse Mercator
- resolution :
- 100.0
- short_name :
- L2_HR_Raster
- descriptor_string :
- 100m_UTM11S_N_x_x_x
- crid :
- PIC0
- pge_name :
- PGE_L2_HR_RASTER
- pge_version :
- 5.1.1
- time_granule_start :
- 2024-02-01T18:38:14.266613Z
- time_granule_end :
- 2024-02-01T18:38:35.362539Z
- time_coverage_start :
- 2024-02-01T18:38:14.805141Z
- time_coverage_end :
- 2024-02-01T18:38:34.816548Z
- geospatial_lon_min :
- -116.55823577002582
- geospatial_lon_max :
- -114.84459394683485
- geospatial_lat_min :
- 36.350992807631336
- geospatial_lat_max :
- 37.724496129136035
- left_first_longitude :
- -115.14314896157633
- left_first_latitude :
- 37.724496129136035
- left_last_longitude :
- -114.84459394683485
- left_last_latitude :
- 36.5951883116925
- right_first_longitude :
- -116.55823577002582
- right_first_latitude :
- 37.474717676188774
- right_last_longitude :
- -116.24045666354958
- right_last_latitude :
- 36.350992807631336
- xref_l2_hr_pixc_files :
- SWOT_L2_HR_PIXC_010_218_088L_20240201T183804_20240201T183815_PIC0_01.nc, SWOT_L2_HR_PIXC_010_218_089L_20240201T183814_20240201T183825_PIC0_01.nc, SWOT_L2_HR_PIXC_010_218_090L_20240201T183824_20240201T183835_PIC0_01.nc, SWOT_L2_HR_PIXC_010_218_091L_20240201T183834_20240201T183845_PIC0_01.nc, SWOT_L2_HR_PIXC_010_218_088R_20240201T183804_20240201T183815_PIC0_01.nc, SWOT_L2_HR_PIXC_010_218_089R_20240201T183814_20240201T183825_PIC0_01.nc, SWOT_L2_HR_PIXC_010_218_090R_20240201T183824_20240201T183835_PIC0_01.nc, SWOT_L2_HR_PIXC_010_218_091R_20240201T183834_20240201T183845_PIC0_01.nc
- xref_l2_hr_pixcvec_files :
- SWOT_L2_HR_PIXCVec_010_218_088L_20240201T183804_20240201T183815_PIC0_01.nc, SWOT_L2_HR_PIXCVec_010_218_089L_20240201T183814_20240201T183825_PIC0_01.nc, SWOT_L2_HR_PIXCVec_010_218_090L_20240201T183824_20240201T183835_PIC0_01.nc, SWOT_L2_HR_PIXCVec_010_218_091L_20240201T183834_20240201T183845_PIC0_01.nc, SWOT_L2_HR_PIXCVec_010_218_088R_20240201T183804_20240201T183815_PIC0_01.nc, SWOT_L2_HR_PIXCVec_010_218_089R_20240201T183814_20240201T183825_PIC0_01.nc, SWOT_L2_HR_PIXCVec_010_218_090R_20240201T183824_20240201T183835_PIC0_01.nc, SWOT_L2_HR_PIXCVec_010_218_091R_20240201T183834_20240201T183845_PIC0_01.nc
- xref_param_l2_hr_raster_file :
- SWOT_Param_L2_HR_Raster_20000101T000000_21000101T000000_20230817T100000_v302.rdf
- xref_reforbittrack_files :
- SWOT_RefOrbitTrackTileBoundary_Nom_20000101T000000_21000101T000000_20200617T193054_v101.txt, SWOT_RefOrbitTrack125mPass1_Nom_20000101T000000_21000101T000000_20200617T193054_v101.txt, SWOT_RefOrbitTrack125mPass2_Nom_20000101T000000_21000101T000000_20200617T193054_v101.txt
- utm_zone_num :
- 11
- mgrs_latitude_band :
- S
- x_min :
- 539100.0
- x_max :
- 692800.0
- y_min :
- 4023100.0
- y_max :
- 4176900.0
- institution :
- CNES
- product_version :
- 01
Creating a Time Series
SWOT Raster product does not include a time dimension, each file is a snapshot in time, but it can be inserted by extracting from the file name.
- Expand the time range of your
earthaccess
search to get an adequate range. - Extract the
datetime
from the s3 file name then concatenate based on the new time dimension.
time_results = earthaccess.search_data(
short_name = 'SWOT_L2_HR_RASTER_2.0',
bounding_box=(-114.502048,36.060175,-114.390983,36.210182),
temporal =('2024-01-25 00:00:00', '2024-03-04 23:59:59'),
granule_name = '*_100m_*',
count =200
)
Granules found: 3
# Get links list
raster = []
for g in time_results:
for l in earthaccess.results.DataGranule.data_links(g, access='direct'):
raster.append(l)
print(len(raster))
raster
3
['s3://podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_2.0/SWOT_L2_HR_Raster_100m_UTM11S_N_x_x_x_010_205_109F_20240201T075048_20240201T075109_PIC0_01.nc',
's3://podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_2.0/SWOT_L2_HR_Raster_100m_UTM11S_N_x_x_x_010_496_046F_20240211T170050_20240211T170111_PIC0_01.nc',
's3://podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_2.0/SWOT_L2_HR_Raster_100m_UTM11S_N_x_x_x_011_205_109F_20240222T043554_20240222T043615_PIC0_01.nc']
def add_time_dimension(ds, file_path):
# Extract filename from s3 file path
file_name = file_path.split('/')[-1]
# Extract date/time string from filename
date_str = file_name.split('_')[-4][:15]
# Convert the date string to a datetime object
time_value = datetime.strptime(date_str, "%Y%m%dT%H%M%S")
# Assign the time coordinate to the dataset
ds.coords['time'] = time_value
return ds
datasets = []
file_names = []
for file_path in raster:
with fs_s3.open(file_path, 'rb') as file:
file_bytes = file.read()
file_obj = io.BytesIO(file_bytes)
dataset = xr.open_dataset(file_obj, engine='h5netcdf')
dataset_with_time = add_time_dimension(dataset, file_path)
datasets.append(dataset_with_time)
file_names.append(file_path.split('/')[-1])
dataset.close()
<xarray.Dataset> Dimensions: (x: 1549, y: 1549, time: 3) Coordinates: * x (x) float64 6.788e+05 6.789e+05 ... 8.336e+05 * y (y) float64 3.9e+06 3.901e+06 ... 4.055e+06 * time (time) datetime64[ns] 2024-02-01T07:50:48 ... 20... Data variables: (12/39) crs (time) object b'1' b'1' b'1' longitude (time, y, x) float64 nan nan nan ... nan nan nan latitude (time, y, x) float64 nan nan nan ... nan nan nan wse (time, y, x) float32 nan nan nan ... nan nan nan wse_qual (time, y, x) float32 nan nan nan ... nan nan nan wse_qual_bitwise (time, y, x) float64 nan nan nan ... nan nan nan ... ... load_tide_fes (time, y, x) float32 nan nan nan ... nan nan nan load_tide_got (time, y, x) float32 nan nan nan ... nan nan nan pole_tide (time, y, x) float32 nan nan nan ... nan nan nan model_dry_tropo_cor (time, y, x) float32 nan nan nan ... nan nan nan model_wet_tropo_cor (time, y, x) float32 nan nan nan ... nan nan nan iono_cor_gim_ka (time, y, x) float32 nan nan nan ... nan nan nan Attributes: (12/49) Conventions: CF-1.7 title: Level 2 KaRIn High Rate Raster Data Product source: Ka-band radar interferometer history: 2024-02-05T12:55:01Z : Creation platform: SWOT references: V1.2.1 ... ... x_min: 680100.0 x_max: 829300.0 y_min: 3903300.0 y_max: 4052400.0 institution: CNES product_version: 01
- x: 1549
- y: 1549
- time: 3
- x(x)float646.788e+05 6.789e+05 ... 8.336e+05
- long_name :
- x coordinate of projection
- standard_name :
- projection_x_coordinate
- units :
- m
- valid_min :
- -10000000.0
- valid_max :
- 10000000.0
- comment :
- UTM easting coordinate of the pixel.
array([678800., 678900., 679000., ..., 833400., 833500., 833600.])
- y(y)float643.9e+06 3.901e+06 ... 4.055e+06
- long_name :
- y coordinate of projection
- standard_name :
- projection_y_coordinate
- units :
- m
- valid_min :
- -20000000.0
- valid_max :
- 20000000.0
- comment :
- UTM northing coordinate of the pixel.
array([3900500., 3900600., 3900700., ..., 4055100., 4055200., 4055300.])
- time(time)datetime64[ns]2024-02-01T07:50:48 ... 2024-02-...
array(['2024-02-01T07:50:48.000000000', '2024-02-11T17:00:50.000000000', '2024-02-22T04:35:54.000000000'], dtype='datetime64[ns]')
- crs(time)objectb'1' b'1' b'1'
- long_name :
- CRS Definition
- grid_mapping_name :
- transverse_mercator
- projected_crs_name :
- WGS 84 / UTM zone 11N
- geographic_crs_name :
- WGS 84
- reference_ellipsoid_name :
- WGS 84
- horizontal_datum_name :
- WGS_1984
- prime_meridian_name :
- Greenwich
- false_easting :
- 500000.0
- false_northing :
- 0.0
- longitude_of_central_meridian :
- -117.0
- longitude_of_prime_meridian :
- 0.0
- latitude_of_projection_origin :
- 0.0
- scale_factor_at_central_meridian :
- 0.9996
- semi_major_axis :
- 6378137.0
- inverse_flattening :
- 298.257223563
- crs_wkt :
- PROJCS["WGS 84 / UTM zone 11N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","32611"]]
- spatial_ref :
- PROJCS["WGS 84 / UTM zone 11N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","32611"]]
- comment :
- UTM zone coordinate reference system.
array([b'1', b'1', b'1'], dtype=object)
- longitude(time, y, x)float64nan nan nan nan ... nan nan nan nan
- long_name :
- longitude (degrees East)
- standard_name :
- longitude
- grid_mapping :
- crs
- units :
- degrees_east
- valid_min :
- -180.0
- valid_max :
- 180.0
- comment :
- Geodetic longitude [-180,180) (east of the Greenwich meridian) of the pixel.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]])
- latitude(time, y, x)float64nan nan nan nan ... nan nan nan nan
- long_name :
- latitude (positive N, negative S)
- standard_name :
- latitude
- grid_mapping :
- crs
- units :
- degrees_north
- valid_min :
- -80.0
- valid_max :
- 80.0
- comment :
- Geodetic latitude [-80,80] (degrees north of equator) of the pixel.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]])
- wse(time, y, x)float32nan nan nan nan ... nan nan nan nan
- long_name :
- water surface elevation above geoid
- grid_mapping :
- crs
- units :
- m
- quality_flag :
- wse_qual
- valid_min :
- -1500.0
- valid_max :
- 15000.0
- comment :
- Water surface elevation of the pixel above the geoid and after using models to subtract the effects of tides (solid_earth_tide, load_tide_fes, pole_tide).
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=float32)
- wse_qual(time, y, x)float32nan nan nan nan ... nan nan nan nan
- long_name :
- summary quality indicator for the water surface elevation
- standard_name :
- status_flag
- grid_mapping :
- crs
- flag_meanings :
- good suspect degraded bad
- flag_values :
- [0 1 2 3]
- valid_min :
- 0
- valid_max :
- 3
- comment :
- Summary quality indicator for the water surface elevation quantities. A value of 0 indicates a nominal measurement, 1 indicates a suspect measurement, 2 indicates a degraded measurement, and 3 indicates a bad measurement.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[ 3., 3., 3., ..., 3., 3., 3.], [ 3., 3., 3., ..., 3., 3., 3.], [ 3., 3., 3., ..., 3., 3., 3.], ..., [ 3., 3., 3., ..., 3., 3., 3.], [ 3., 3., 3., ..., 3., 3., 3.], [ 3., 3., 3., ..., 3., 3., 3.]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=float32)
- wse_qual_bitwise(time, y, x)float64nan nan nan nan ... nan nan nan nan
- long_name :
- bitwise quality indicator for the water surface elevation
- standard_name :
- status_flag
- grid_mapping :
- crs
- flag_meanings :
- classification_qual_suspect geolocation_qual_suspect large_uncert_suspect bright_land few_pixels far_range_suspect near_range_suspect classification_qual_degraded geolocation_qual_degraded dark_water_degraded low_coherence_water_degraded value_bad outside_data_window no_pixels outside_scene_bounds inner_swath missing_karin_data
- flag_masks :
- [ 2 4 32 128 4096 8192 16384 262144 524288 1048576 2097152 16777216 67108864 268435456 536870912 1073741824 2147483648]
- valid_min :
- 0
- valid_max :
- 4114378918
- comment :
- Bitwise quality indicator for the water surface elevation quantities. If this word is interpreted as an unsigned integer, a value of 0 indicates good data, positive values less than 32768 represent suspect data, values greater than or equal to 32768 but less than 8388608 represent degraded data, and values greater than or equal to 8388608 represent bad data.
array([[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], ..., [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]], [[8.05310464e+08, 8.05310464e+08, 8.05310464e+08, ..., 8.05310464e+08, 8.05310464e+08, 8.05310464e+08], [8.05310464e+08, 8.05310464e+08, 8.05310464e+08, ..., 8.05310464e+08, 8.05310464e+08, 8.05310464e+08], [8.05310464e+08, 8.05310464e+08, 8.05310464e+08, ..., 8.05310464e+08, 8.05310464e+08, 8.05310464e+08], ... [8.05310464e+08, 8.05310464e+08, 8.05310464e+08, ..., 8.05310464e+08, 8.05310464e+08, 8.05310464e+08], [8.05310464e+08, 8.05310464e+08, 8.05310464e+08, ..., 8.05310464e+08, 8.05310464e+08, 8.05310464e+08], [8.05310464e+08, 8.05310464e+08, 8.05310464e+08, ..., 8.05310464e+08, 8.05310464e+08, 8.05310464e+08]], [[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], ..., [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]]])
- wse_uncert(time, y, x)float32nan nan nan nan ... nan nan nan nan
- long_name :
- uncertainty in the water surface elevation
- grid_mapping :
- crs
- units :
- m
- valid_min :
- 0.0
- valid_max :
- 999999.0
- comment :
- 1-sigma uncertainty in the water surface elevation.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=float32)
- water_area(time, y, x)float32nan nan nan nan ... nan nan nan nan
- long_name :
- water surface area
- grid_mapping :
- crs
- units :
- m^2
- quality_flag :
- water_area_qual
- valid_min :
- -2000000.0
- valid_max :
- 2000000000.0
- comment :
- Surface area of the water pixels.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=float32)
- water_area_qual(time, y, x)float32nan nan nan nan ... nan nan nan nan
- long_name :
- summary quality indicator for the water surface area
- standard_name :
- status_flag
- grid_mapping :
- crs
- flag_meanings :
- good suspect degraded bad
- flag_values :
- [0 1 2 3]
- valid_min :
- 0
- valid_max :
- 3
- comment :
- Summary quality indicator for the water surface area and water fraction quantities. A value of 0 indicates a nominal measurement, 1 indicates a suspect measurement, 2 indicates a degraded measurement, and 3 indicates a bad measurement.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[ 3., 3., 3., ..., 3., 3., 3.], [ 3., 3., 3., ..., 3., 3., 3.], [ 3., 3., 3., ..., 3., 3., 3.], ..., [ 3., 3., 3., ..., 3., 3., 3.], [ 3., 3., 3., ..., 3., 3., 3.], [ 3., 3., 3., ..., 3., 3., 3.]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=float32)
- water_area_qual_bitwise(time, y, x)float64nan nan nan nan ... nan nan nan nan
- long_name :
- bitwise quality indicator for the water surface area
- standard_name :
- status_flag
- grid_mapping :
- crs
- flag_meanings :
- classification_qual_suspect geolocation_qual_suspect water_fraction_suspect large_uncert_suspect bright_land low_coherence_water_suspect few_pixels far_range_suspect near_range_suspect classification_qual_degraded geolocation_qual_degraded value_bad outside_data_window no_pixels outside_scene_bounds inner_swath missing_karin_data
- flag_masks :
- [ 2 4 8 32 128 256 4096 8192 16384 262144 524288 16777216 67108864 268435456 536870912 1073741824 2147483648]
- valid_min :
- 0
- valid_max :
- 4111233454
- comment :
- Bitwise quality indicator for the water surface area and water fraction quantities. If this word is interpreted as an unsigned integer, a value of 0 indicates good data, positive values less than 32768 represent suspect data, values greater than or equal to 32768 but less than 8388608 represent degraded data, and values greater than or equal to 8388608 represent bad data.
array([[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], ..., [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]], [[8.05310464e+08, 8.05310464e+08, 8.05310464e+08, ..., 8.05310464e+08, 8.05310464e+08, 8.05310464e+08], [8.05310464e+08, 8.05310464e+08, 8.05310464e+08, ..., 8.05310464e+08, 8.05310464e+08, 8.05310464e+08], [8.05310464e+08, 8.05310464e+08, 8.05310464e+08, ..., 8.05310464e+08, 8.05310464e+08, 8.05310464e+08], ... [8.05310464e+08, 8.05310464e+08, 8.05310464e+08, ..., 8.05310464e+08, 8.05310464e+08, 8.05310464e+08], [8.05310464e+08, 8.05310464e+08, 8.05310464e+08, ..., 8.05310464e+08, 8.05310464e+08, 8.05310464e+08], [8.05310464e+08, 8.05310464e+08, 8.05310464e+08, ..., 8.05310464e+08, 8.05310464e+08, 8.05310464e+08]], [[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], ..., [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]]])
- water_area_uncert(time, y, x)float32nan nan nan nan ... nan nan nan nan
- long_name :
- uncertainty in the water surface area
- grid_mapping :
- crs
- units :
- m^2
- valid_min :
- 0.0
- valid_max :
- 2000000000.0
- comment :
- 1-sigma uncertainty in the water surface area.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=float32)
- water_frac(time, y, x)float32nan nan nan nan ... nan nan nan nan
- long_name :
- water fraction
- grid_mapping :
- crs
- units :
- 1
- quality_flag :
- water_area_qual
- valid_min :
- -1000.0
- valid_max :
- 10000.0
- comment :
- Fraction of the pixel that is water.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=float32)
- water_frac_uncert(time, y, x)float32nan nan nan nan ... nan nan nan nan
- long_name :
- uncertainty in the water fraction
- grid_mapping :
- crs
- units :
- 1
- valid_min :
- 0.0
- valid_max :
- 999999.0
- comment :
- 1-sigma uncertainty in the water fraction.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=float32)
- sig0(time, y, x)float32nan nan nan nan ... nan nan nan nan
- long_name :
- sigma0
- grid_mapping :
- crs
- units :
- 1
- quality_flag :
- sig0_qual
- valid_min :
- -999999.0
- valid_max :
- 999999.0
- comment :
- Normalized radar cross section (sigma0) in real, linear units (not decibels). The value may be negative due to noise subtraction.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=float32)
- sig0_qual(time, y, x)float32nan nan nan nan ... nan nan nan nan
- long_name :
- summary quality indicator for the sigma0
- standard_name :
- status_flag
- grid_mapping :
- crs
- flag_meanings :
- good suspect degraded bad
- flag_values :
- [0 1 2 3]
- valid_min :
- 0
- valid_max :
- 3
- comment :
- Summary quality indicator for the sigma0 quantities. A value of 0 indicates a nominal measurement, 1 indicates a suspect measurement, 2 indicates a degraded measurement, and 3 indicates a bad measurement.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[ 3., 3., 3., ..., 3., 3., 3.], [ 3., 3., 3., ..., 3., 3., 3.], [ 3., 3., 3., ..., 3., 3., 3.], ..., [ 3., 3., 3., ..., 3., 3., 3.], [ 3., 3., 3., ..., 3., 3., 3.], [ 3., 3., 3., ..., 3., 3., 3.]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=float32)
- sig0_qual_bitwise(time, y, x)float64nan nan nan nan ... nan nan nan nan
- long_name :
- bitwise quality indicator for the sigma0
- standard_name :
- status_flag
- grid_mapping :
- crs
- flag_meanings :
- sig0_qual_suspect classification_qual_suspect geolocation_qual_suspect large_uncert_suspect bright_land low_coherence_water_suspect few_pixels far_range_suspect near_range_suspect sig0_qual_degraded classification_qual_degraded geolocation_qual_degraded value_bad outside_data_window no_pixels outside_scene_bounds inner_swath missing_karin_data
- flag_masks :
- [ 1 2 4 32 128 256 4096 8192 16384 131072 262144 524288 16777216 67108864 268435456 536870912 1073741824 2147483648]
- valid_min :
- 0
- valid_max :
- 4111364519
- comment :
- Bitwise quality indicator for the sigma0 quantities. If this word is interpreted as an unsigned integer, a value of 0 indicates good data, positive values less than 32768 represent suspect data, values greater than or equal to 32768 but less than 8388608 represent degraded data, and values greater than or equal to 8388608 represent bad data.
array([[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], ..., [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]], [[8.05310464e+08, 8.05310464e+08, 8.05310464e+08, ..., 8.05310464e+08, 8.05310464e+08, 8.05310464e+08], [8.05310464e+08, 8.05310464e+08, 8.05310464e+08, ..., 8.05310464e+08, 8.05310464e+08, 8.05310464e+08], [8.05310464e+08, 8.05310464e+08, 8.05310464e+08, ..., 8.05310464e+08, 8.05310464e+08, 8.05310464e+08], ... [8.05310464e+08, 8.05310464e+08, 8.05310464e+08, ..., 8.05310464e+08, 8.05310464e+08, 8.05310464e+08], [8.05310464e+08, 8.05310464e+08, 8.05310464e+08, ..., 8.05310464e+08, 8.05310464e+08, 8.05310464e+08], [8.05310464e+08, 8.05310464e+08, 8.05310464e+08, ..., 8.05310464e+08, 8.05310464e+08, 8.05310464e+08]], [[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], ..., [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]]])
- sig0_uncert(time, y, x)float32nan nan nan nan ... nan nan nan nan
- long_name :
- uncertainty in sigma0
- grid_mapping :
- crs
- units :
- 1
- valid_min :
- -999999.0
- valid_max :
- 999999.0
- comment :
- 1-sigma uncertainty in sigma0. The value is provided in linear units. This value is a one-sigma additive (not multiplicative) uncertainty term, which can be added to or subtracted from sigma0.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=float32)
- inc(time, y, x)float32nan nan nan nan ... nan nan nan nan
- long_name :
- incidence angle
- grid_mapping :
- crs
- units :
- degrees
- valid_min :
- 0.0
- valid_max :
- 90.0
- comment :
- Incidence angle.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=float32)
- cross_track(time, y, x)float32nan nan nan nan ... nan nan nan nan
- long_name :
- approximate cross-track location
- grid_mapping :
- crs
- units :
- m
- valid_min :
- -75000.0
- valid_max :
- 75000.0
- comment :
- Approximate cross-track location of the pixel.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=float32)
- illumination_time(time, y, x)datetime64[ns]NaT NaT NaT NaT ... NaT NaT NaT NaT
- long_name :
- time of illumination of each pixel (UTC)
- standard_name :
- time
- tai_utc_difference :
- 37.0
- leap_second :
- 0000-00-00T00:00:00Z
- comment :
- Time of measurement in seconds in the UTC time scale since 1 Jan 2000 00:00:00 UTC. [tai_utc_difference] is the difference between TAI and UTC reference time (seconds) for the first measurement of the data set. If a leap second occurs within the data set, the attribute leap_second is set to the UTC time at which the leap second occurs.
array([[['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ..., ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT']], [['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ..., ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT']], [['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ..., ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT']]], dtype='datetime64[ns]')
- illumination_time_tai(time, y, x)datetime64[ns]NaT NaT NaT NaT ... NaT NaT NaT NaT
- long_name :
- time of illumination of each pixel (TAI)
- standard_name :
- time
- comment :
- Time of measurement in seconds in the TAI time scale since 1 Jan 2000 00:00:00 TAI. This time scale contains no leap seconds. The difference (in seconds) with time in UTC is given by the attribute [illumination_time:tai_utc_difference].
array([[['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ..., ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT']], [['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ..., ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT']], [['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ..., ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT'], ['NaT', 'NaT', 'NaT', ..., 'NaT', 'NaT', 'NaT']]], dtype='datetime64[ns]')
- n_wse_pix(time, y, x)float64nan nan nan nan ... nan nan nan nan
- long_name :
- number of water surface elevation pixels
- grid_mapping :
- crs
- units :
- l
- valid_min :
- 0
- valid_max :
- 999999
- comment :
- Number of pixel cloud samples used in water surface elevation aggregation.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[ 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.]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]])
- n_water_area_pix(time, y, x)float64nan nan nan nan ... nan nan nan nan
- long_name :
- number of water surface area pixels
- grid_mapping :
- crs
- units :
- l
- valid_min :
- 0
- valid_max :
- 999999
- comment :
- Number of pixel cloud samples used in water surface area and water fraction aggregation.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[ 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.]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]])
- n_sig0_pix(time, y, x)float64nan nan nan nan ... nan nan nan nan
- long_name :
- number of sigma0 pixels
- grid_mapping :
- crs
- units :
- l
- valid_min :
- 0
- valid_max :
- 999999
- comment :
- Number of pixel cloud samples used in sigma0 aggregation.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[ 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.]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]])
- n_other_pix(time, y, x)float64nan nan nan nan ... nan nan nan nan
- long_name :
- number of other pixels
- grid_mapping :
- crs
- units :
- l
- valid_min :
- 0
- valid_max :
- 999999
- comment :
- Number of pixel cloud samples used in aggregation of quantities not related to water surface elevation, water surface area, water fraction or sigma0.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[ 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.]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]])
- dark_frac(time, y, x)float32nan nan nan nan ... nan nan nan nan
- long_name :
- fractional area of dark water
- grid_mapping :
- crs
- units :
- l
- valid_min :
- -1000.0
- valid_max :
- 10000.0
- comment :
- Fraction of pixel water surface area covered by dark water.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=float32)
- ice_clim_flag(time, y, x)float32nan nan nan nan ... nan nan nan nan
- long_name :
- climatological ice cover flag
- standard_name :
- status_flag
- source :
- UNC
- grid_mapping :
- crs
- flag_meanings :
- no_ice_cover uncertain_ice_cover full_ice_cover
- flag_values :
- [0 1 2]
- valid_min :
- 0
- valid_max :
- 2
- comment :
- Climatological ice cover flag indicating whether the pixel is ice-covered on the day of the observation based on external climatological information (not the SWOT measurement). Values of 0, 1, and 2 indicate that the pixel is likely not ice covered, may or may not be partially or fully ice covered, and likely fully ice covered, respectively.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=float32)
- ice_dyn_flag(time, y, x)float32nan nan nan nan ... nan nan nan nan
- long_name :
- dynamic ice cover flag
- standard_name :
- status_flag
- source :
- UNC
- grid_mapping :
- crs
- flag_meanings :
- no_ice_cover partial_ice_cover full_ice_cover
- flag_values :
- [0 1 2]
- valid_min :
- 0
- valid_max :
- 2
- comment :
- Dynamic ice cover flag indicating whether the surface is ice-covered on the day of the observation based on analysis of external satellite optical data. Values of 0, 1, and 2 indicate that the pixel is not ice covered, partially ice covered, and fully ice covered, respectively.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=float32)
- layover_impact(time, y, x)float32nan nan nan nan ... nan nan nan nan
- long_name :
- layover impact
- grid_mapping :
- crs
- units :
- m
- valid_min :
- -999999.0
- valid_max :
- 999999.0
- comment :
- Estimate of the water surface elevation error caused by layover.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=float32)
- sig0_cor_atmos_model(time, y, x)float32nan nan nan nan ... nan nan nan nan
- long_name :
- two-way atmospheric correction to sigma0 from model
- source :
- European Centre for Medium-Range Weather Forecasts
- institution :
- ECMWF
- grid_mapping :
- crs
- units :
- 1
- valid_min :
- 1.0
- valid_max :
- 10.0
- comment :
- Atmospheric correction to sigma0 from weather model data as a linear power multiplier (not decibels). sig0_cor_atmos_model is already applied in computing sig0.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=float32)
- height_cor_xover(time, y, x)float32nan nan nan nan ... nan nan nan nan
- long_name :
- height correction from KaRIn crossovers
- grid_mapping :
- crs
- units :
- m
- valid_min :
- -10.0
- valid_max :
- 10.0
- comment :
- Height correction from KaRIn crossover calibration. The correction is applied before geolocation but reported as an equivalent height correction.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=float32)
- geoid(time, y, x)float32nan nan nan nan ... nan nan nan nan
- long_name :
- geoid height
- standard_name :
- geoid_height_above_reference_ellipsoid
- source :
- EGM2008 (Pavlis et al., 2012)
- grid_mapping :
- crs
- units :
- m
- valid_min :
- -150.0
- valid_max :
- 150.0
- comment :
- Geoid height above the reference ellipsoid with a correction to refer the value to the mean tide system, i.e. includes the permanent tide (zero frequency).
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=float32)
- solid_earth_tide(time, y, x)float32nan nan nan nan ... nan nan nan nan
- long_name :
- solid Earth tide height
- source :
- Cartwright and Taylor (1971) and Cartwright and Edden (1973)
- grid_mapping :
- crs
- units :
- m
- valid_min :
- -1.0
- valid_max :
- 1.0
- comment :
- Solid-Earth (body) tide height. The zero-frequency permanent tide component is not included.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=float32)
- load_tide_fes(time, y, x)float32nan nan nan nan ... nan nan nan nan
- long_name :
- geocentric load tide height (FES)
- source :
- FES2014b (Carrere et al., 2016)
- institution :
- LEGOS/CNES
- grid_mapping :
- crs
- units :
- m
- valid_min :
- -0.2
- valid_max :
- 0.2
- comment :
- Geocentric load tide height. The effect of the ocean tide loading of the Earth’s crust.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=float32)
- load_tide_got(time, y, x)float32nan nan nan nan ... nan nan nan nan
- long_name :
- geocentric load tide height (GOT)
- source :
- GOT4.10c (Ray, 2013)
- institution :
- GSFC
- grid_mapping :
- crs
- units :
- m
- valid_min :
- -0.2
- valid_max :
- 0.2
- comment :
- Geocentric load tide height. The effect of the ocean tide loading of the Earth’s crust. This value is reported for reference but is not applied to the reported height.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=float32)
- pole_tide(time, y, x)float32nan nan nan nan ... nan nan nan nan
- long_name :
- geocentric pole tide height
- source :
- Wahr (1985) and Desai et al. (2015)
- grid_mapping :
- crs
- units :
- m
- valid_min :
- -0.2
- valid_max :
- 0.2
- comment :
- Geocentric pole tide height. The total of the contribution from the solid-Earth (body) pole tide height and the load pole tide height (i.e., the effect of the ocean pole tide loading of the Earth’s crust).
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=float32)
- model_dry_tropo_cor(time, y, x)float32nan nan nan nan ... nan nan nan nan
- long_name :
- dry troposphere vertical correction
- source :
- European Centre for Medium-Range Weather Forecasts
- institution :
- ECMWF
- grid_mapping :
- crs
- units :
- m
- valid_min :
- -3.0
- valid_max :
- -1.5
- comment :
- Equivalent vertical correction due to dry troposphere delay. The reported water surface elevation, latitude and longitude are computed after adding negative media corrections to uncorrected range along slant-range paths, accounting for the differential delay between the two KaRIn antennas. The equivalent vertical correction is computed by applying obliquity factors to the slant-path correction. Adding the reported correction to the reported water surface elevation results in the uncorrected pixel height.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=float32)
- model_wet_tropo_cor(time, y, x)float32nan nan nan nan ... nan nan nan nan
- long_name :
- wet troposphere vertical correction
- source :
- European Centre for Medium-Range Weather Forecasts
- institution :
- ECMWF
- grid_mapping :
- crs
- units :
- m
- valid_min :
- -1.0
- valid_max :
- 0.0
- comment :
- Equivalent vertical correction due to wet troposphere delay. The reported water surface elevation, latitude and longitude are computed after adding negative media corrections to uncorrected range along slant-range paths, accounting for the differential delay between the two KaRIn antennas. The equivalent vertical correction is computed by applying obliquity factors to the slant-path correction. Adding the reported correction to the reported water surface elevation results in the uncorrected pixel height.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=float32)
- iono_cor_gim_ka(time, y, x)float32nan nan nan nan ... nan nan nan nan
- long_name :
- ionosphere vertical correction
- source :
- Global Ionosphere Maps
- institution :
- JPL
- grid_mapping :
- crs
- units :
- m
- valid_min :
- -0.5
- valid_max :
- 0.0
- comment :
- Equivalent vertical correction due to ionosphere delay. The reported water surface elevation, latitude and longitude are computed after adding negative media corrections to uncorrected range along slant-range paths, accounting for the differential delay between the two KaRIn antennas. The equivalent vertical correction is computed by applying obliquity factors to the slant-path correction. Adding the reported correction to the reported water surface elevation results in the uncorrected pixel height.
array([[[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]], [[nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], ..., [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan], [nan, nan, nan, ..., nan, nan, nan]]], dtype=float32)
- xPandasIndex
PandasIndex(Float64Index([678800.0, 678900.0, 679000.0, 679100.0, 679200.0, 679300.0, 679400.0, 679500.0, 679600.0, 679700.0, ... 832700.0, 832800.0, 832900.0, 833000.0, 833100.0, 833200.0, 833300.0, 833400.0, 833500.0, 833600.0], dtype='float64', name='x', length=1549))
- yPandasIndex
PandasIndex(Float64Index([3900500.0, 3900600.0, 3900700.0, 3900800.0, 3900900.0, 3901000.0, 3901100.0, 3901200.0, 3901300.0, 3901400.0, ... 4054400.0, 4054500.0, 4054600.0, 4054700.0, 4054800.0, 4054900.0, 4055000.0, 4055100.0, 4055200.0, 4055300.0], dtype='float64', name='y', length=1549))
- timePandasIndex
PandasIndex(DatetimeIndex(['2024-02-01 07:50:48', '2024-02-11 17:00:50', '2024-02-22 04:35:54'], dtype='datetime64[ns]', name='time', freq=None))
- Conventions :
- CF-1.7
- title :
- Level 2 KaRIn High Rate Raster Data Product
- source :
- Ka-band radar interferometer
- history :
- 2024-02-05T12:55:01Z : Creation
- platform :
- SWOT
- references :
- V1.2.1
- reference_document :
- JPL D-56416 - Revision C - December 8, 2023
- contact :
- podaac@podaac.jpl.nasa.gov
- cycle_number :
- 10
- pass_number :
- 205
- scene_number :
- 109
- tile_numbers :
- [216 217 218 219 216 217 218 219]
- tile_names :
- 205_216L, 205_217L, 205_218L, 205_219L, 205_216R, 205_217R, 205_218R, 205_219R
- tile_polarizations :
- H, H, H, H, V, V, V, V
- coordinate_reference_system :
- Universal Transverse Mercator
- resolution :
- 100.0
- short_name :
- L2_HR_Raster
- descriptor_string :
- 100m_UTM11S_N_x_x_x
- crid :
- PIC0
- pge_name :
- PGE_L2_HR_RASTER
- pge_version :
- 5.1.1
- time_granule_start :
- 2024-02-01T07:50:48.872250Z
- time_granule_end :
- 2024-02-01T07:51:09.965949Z
- time_coverage_start :
- 2024-02-01T07:50:49.410994Z
- time_coverage_end :
- 2024-02-01T07:51:09.428854Z
- geospatial_lon_min :
- -115.01465895670609
- geospatial_lon_max :
- -113.33094509647773
- geospatial_lat_min :
- 35.225727504637376
- geospatial_lat_max :
- 36.595188311791034
- left_first_longitude :
- -115.01465895670609
- left_first_latitude :
- 35.46460890403489
- left_last_longitude :
- -114.72680781313967
- left_last_latitude :
- 36.595188311791034
- right_first_longitude :
- -113.63706815703668
- right_first_latitude :
- 35.225727504637376
- right_last_longitude :
- -113.33094509647773
- right_last_latitude :
- 36.350992807533125
- xref_l2_hr_pixc_files :
- SWOT_L2_HR_PIXC_010_205_216L_20240201T075038_20240201T075049_PIC0_01.nc, SWOT_L2_HR_PIXC_010_205_217L_20240201T075048_20240201T075059_PIC0_01.nc, SWOT_L2_HR_PIXC_010_205_218L_20240201T075058_20240201T075109_PIC0_01.nc, SWOT_L2_HR_PIXC_010_205_219L_20240201T075108_20240201T075119_PIC0_01.nc, SWOT_L2_HR_PIXC_010_205_216R_20240201T075038_20240201T075049_PIC0_01.nc, SWOT_L2_HR_PIXC_010_205_217R_20240201T075048_20240201T075059_PIC0_01.nc, SWOT_L2_HR_PIXC_010_205_218R_20240201T075058_20240201T075109_PIC0_01.nc, SWOT_L2_HR_PIXC_010_205_219R_20240201T075108_20240201T075119_PIC0_01.nc
- xref_l2_hr_pixcvec_files :
- SWOT_L2_HR_PIXCVec_010_205_216L_20240201T075038_20240201T075049_PIC0_01.nc, SWOT_L2_HR_PIXCVec_010_205_217L_20240201T075048_20240201T075059_PIC0_01.nc, SWOT_L2_HR_PIXCVec_010_205_218L_20240201T075058_20240201T075109_PIC0_01.nc, SWOT_L2_HR_PIXCVec_010_205_219L_20240201T075108_20240201T075119_PIC0_01.nc, SWOT_L2_HR_PIXCVec_010_205_216R_20240201T075038_20240201T075049_PIC0_01.nc, SWOT_L2_HR_PIXCVec_010_205_217R_20240201T075048_20240201T075059_PIC0_01.nc, SWOT_L2_HR_PIXCVec_010_205_218R_20240201T075058_20240201T075109_PIC0_01.nc, SWOT_L2_HR_PIXCVec_010_205_219R_20240201T075108_20240201T075119_PIC0_01.nc
- xref_param_l2_hr_raster_file :
- SWOT_Param_L2_HR_Raster_20000101T000000_21000101T000000_20230817T100000_v302.rdf
- xref_reforbittrack_files :
- SWOT_RefOrbitTrackTileBoundary_Nom_20000101T000000_21000101T000000_20200617T193054_v101.txt, SWOT_RefOrbitTrack125mPass1_Nom_20000101T000000_21000101T000000_20200617T193054_v101.txt, SWOT_RefOrbitTrack125mPass2_Nom_20000101T000000_21000101T000000_20200617T193054_v101.txt
- utm_zone_num :
- 11
- mgrs_latitude_band :
- S
- x_min :
- 680100.0
- x_max :
- 829300.0
- y_min :
- 3903300.0
- y_max :
- 4052400.0
- institution :
- CNES
- product_version :
- 01