Skip to main content

From the PO.DAAC Cookbook, to access the GitHub version of the notebook, follow this link.

SWOT Hydrology Science Application Tutorial on the Cloud

Retrieving SWOT attributes (WSE, width, slope) and plotting a longitudinal profile along a river or over a basin

Requirement

This tutorial can only be run in an AWS cloud instance running in us-west-2: NASA Earthdata Cloud data in S3 can be directly accessed via earthaccess python library; this access is limited to requests made within the US West (Oregon) (code: us-west-2) AWS region.

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.

This code runs using SWOT Level 2 Data Products (Version D).

Notebook Authors: Arnaud Cerbelaud, Jeffrey Wade, NASA Jet Propulsion Laboratory - California Institute of Technology (Mar 2024)

Last updated: November 2026

Learning Objectives

  1. Retrieve SWOT hydrological attributes on river reaches within the AWS cloud (Cal/Val data). Query reaches by:
    • River name
    • Spatial bounding box
    • Downstream tracing from reach id (e.g. headwater to outlet) for river longitudinal profiles
    • Upstream tracing from reach id (e.g. outlet to full river network) for watershed analysis
  2. Plot a time series of WSE, width, slope data on the filtered data
  3. Visualize an interactive map of WSE, width, slope data on the filtered data

Import Packages

import fiona
import xarray as xr
import pandas as pd
import geopandas as gpd
import numpy as np
import matplotlib.pyplot as plt
import hvplot.xarray
import earthaccess
import warnings

warnings.filterwarnings("ignore", category=FutureWarning, module="earthaccess")
pd.set_option('display.max_columns', None) #make sure all columns displayed for shapefiles

Authenticate

Authenticate your Earthdata Login (EDL) information using the earthaccess python package as follows:

earthaccess.login() # Login with your EDL credentials if asked
<earthaccess.auth.Auth at 0x7f32f211f8c0>

1. Retrieve SWOT hydrological attributes on river reaches within the AWS cloud (Cal/Val data)

What data should we download?

  • Optional step: Get the .kmz file of SWOT passes/swaths for the and import it into Google Earth for visualization
  • Determine which pass number corresponds to the river/basin you want to look at! #### Search for multiple days of data
# Enter pass number
pass_number    = ["341", "576", "298"]   #e.g. 341, 576, 298 for Connecticut in NA, "236", "514", "542", "085", "363", "057", "335", "029" for Rhine in EU
# Enter continent code
continent_code = "NA"     # e.g. "AF", "NA", "EU", "SI", "AS", "AU", "SA", "AR", "GR"

# Retrieves granulev and links list from the passes we want, in this case by passing to `earthdata.search_data` function the data collection shortname and temporal bounds
links_list = []
for p in range(len(pass_number)):
    river_results = earthaccess.search_data(short_name = 'SWOT_L2_HR_RiverSP_D', 
                                        temporal = ('2024-01-25 00:00:00', '2024-03-29 23:59:59'),
                                        granule_name = "*Reach*_" + pass_number[p] + "_" + continent_code + "*")
    for r in range(len(river_results)):
        river_link = earthaccess.results.DataGranule.data_links(river_results[r], access='direct')[0]
        links_list.append(river_link)
print(f"Found {len(river_results)} granules")
Found 3 granules
# Create fiona session to read data from zip files without download and extraction
fs_s3 = earthaccess.get_s3_filesystem(results=river_results)
fiona_session=fiona.session.AWSSession(
        aws_access_key_id=fs_s3.storage_options["key"],
        aws_secret_access_key=fs_s3.storage_options["secret"],
        aws_session_token=fs_s3.storage_options["token"]
    )
links_list
['s3://podaac-swot-ops-cumulus-protected/SWOT_L2_HR_RiverSP_D/SWOT_L2_HR_RiverSP_Reach_010_341_NA_20240206T041926_20240206T043456_PGD0_01.zip',
 's3://podaac-swot-ops-cumulus-protected/SWOT_L2_HR_RiverSP_D/SWOT_L2_HR_RiverSP_Reach_011_341_NA_20240227T010431_20240227T012002_PGD0_01.zip',
 's3://podaac-swot-ops-cumulus-protected/SWOT_L2_HR_RiverSP_D/SWOT_L2_HR_RiverSP_Reach_012_341_NA_20240318T214934_20240318T220504_PGD0_01.zip',
 's3://podaac-swot-ops-cumulus-protected/SWOT_L2_HR_RiverSP_D/SWOT_L2_HR_RiverSP_Reach_010_576_NA_20240214T133056_20240214T134204_PGD0_01.zip',
 's3://podaac-swot-ops-cumulus-protected/SWOT_L2_HR_RiverSP_D/SWOT_L2_HR_RiverSP_Reach_011_576_NA_20240306T101600_20240306T102708_PGD0_01.zip',
 's3://podaac-swot-ops-cumulus-protected/SWOT_L2_HR_RiverSP_D/SWOT_L2_HR_RiverSP_Reach_012_576_NA_20240327T070054_20240327T071215_PGD0_01.zip',
 's3://podaac-swot-ops-cumulus-protected/SWOT_L2_HR_RiverSP_D/SWOT_L2_HR_RiverSP_Reach_010_298_NA_20240204T150846_20240204T151306_PGD0_01.zip',
 's3://podaac-swot-ops-cumulus-protected/SWOT_L2_HR_RiverSP_D/SWOT_L2_HR_RiverSP_Reach_011_298_NA_20240225T115352_20240225T115812_PGD0_01.zip',
 's3://podaac-swot-ops-cumulus-protected/SWOT_L2_HR_RiverSP_D/SWOT_L2_HR_RiverSP_Reach_012_298_NA_20240317T083854_20240317T084314_PGD0_01.zip']

Unzip selected files in Fiona session

# Initialize list of shapefiles containing all dates
SWOT_HR_shps = []

# Loop through queried granules to stack all acquisition dates
for j in range(len(links_list)):
    
    # We use the zip+ prefix so fiona knows that we are operating on a zip file
    river_shp_url = f"zip+{links_list[j]}"
    
    # Read shapefile
    with fiona.Env(session=fiona_session):
        SWOT_HR_shps.append(gpd.read_file(river_shp_url)) 

Aggregate unzipped files into dataframe

# Combine granules from all acquisition dates into one dataframe
SWOT_HR_df = gpd.GeoDataFrame(pd.concat(SWOT_HR_shps, ignore_index=True))

# Sort dataframe by reach_id and time
SWOT_HR_df = SWOT_HR_df.sort_values(['reach_id', 'time'])

SWOT_HR_df
reach_id time time_tai time_str p_lat p_lon river_name wse wse_u wse_r_u wse_c wse_c_u slope slope_u slope_r_u slope2 slope2_u slope2_r_u width width_u width_c width_c_u area_total area_tot_u area_detct area_det_u area_wse d_x_area d_x_area_u layovr_val node_dist loc_offset xtrk_dist dschg_c dschg_c_u dschg_csf dschg_c_q dschg_gc dschg_gc_u dschg_gcsf dschg_gc_q dschg_m dschg_m_u dschg_msf dschg_m_q dschg_gm dschg_gm_u dschg_gmsf dschg_gm_q dschg_b dschg_b_u dschg_bsf dschg_b_q dschg_gb dschg_gb_u dschg_gbsf dschg_gb_q dschg_h dschg_h_u dschg_hsf dschg_h_q dschg_gh dschg_gh_u dschg_ghsf dschg_gh_q dschg_o dschg_o_u dschg_osf dschg_o_q dschg_go dschg_go_u dschg_gosf dschg_go_q dschg_s dschg_s_u dschg_ssf dschg_s_q dschg_gs dschg_gs_u dschg_gssf dschg_gs_q dschg_i dschg_i_u dschg_isf dschg_i_q dschg_gi dschg_gi_u dschg_gisf dschg_gi_q dschg_q_b dschg_gq_b reach_q reach_q_b dark_frac ice_clim_f ice_dyn_f partial_f n_good_nod obs_frac_n xovr_cal_q geoid_hght geoid_slop solid_tide load_tidef load_tideg pole_tide dry_trop_c wet_trop_c iono_c xovr_cal_c n_reach_up n_reach_dn rch_id_up rch_id_dn p_wse p_wse_var p_width p_wid_var p_n_nodes p_dist_out p_length p_maf p_dam_id p_n_ch_max p_n_ch_mod p_low_slp geometry
4784 72120300181 -1.000000e+12 -1.000000e+12 no_data 50.353258 -77.284955 no_data -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 12582912 12582912 3 469762048 -1.000000e+12 2 -999 1 -999 -1.000000e+12 2 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 1 1 72120300196, no_data, no_data, no_data 72120300173, no_data, no_data, no_data 248.199997 0.031587 45.0 217.523 86 209848.884 17136.597233 -1.000000e+12 0 1 1 0 LINESTRING (-77.37319 50.31698, -77.37277 50.3...
5502 72120300181 -1.000000e+12 -1.000000e+12 no_data 50.353258 -77.284955 no_data -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 12582912 12582912 3 469762048 -1.000000e+12 2 -999 1 -999 -1.000000e+12 2 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 1 1 72120300196, no_data, no_data, no_data 72120300173, no_data, no_data, no_data 248.199997 0.031587 45.0 217.523 86 209848.884 17136.597233 -1.000000e+12 0 1 1 0 LINESTRING (-77.37319 50.31698, -77.37277 50.3...
6220 72120300181 -1.000000e+12 -1.000000e+12 no_data 50.353258 -77.284955 no_data -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 12582912 12582912 3 469762048 -1.000000e+12 2 -999 1 -999 -1.000000e+12 2 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 1 1 72120300196, no_data, no_data, no_data 72120300173, no_data, no_data, no_data 248.199997 0.031587 45.0 217.523 86 209848.884 17136.597233 -1.000000e+12 0 1 1 0 LINESTRING (-77.37319 50.31698, -77.37277 50.3...
4785 72120400051 -1.000000e+12 -1.000000e+12 no_data 49.866603 -76.958900 no_data -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 12582912 12582912 3 469762048 -1.000000e+12 2 -999 1 -999 -1.000000e+12 2 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 1 1 72120400063, no_data, no_data, no_data 72120400043, no_data, no_data, no_data 256.399994 2.569541 291.0 19982.483 91 308648.446 18234.622619 -1.000000e+12 0 3 1 0 LINESTRING (-77.06133 49.85771, -77.06092 49.8...
5503 72120400051 -1.000000e+12 -1.000000e+12 no_data 49.866603 -76.958900 no_data -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 12582912 12582912 3 469762048 -1.000000e+12 2 -999 1 -999 -1.000000e+12 2 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 1 1 72120400063, no_data, no_data, no_data 72120400043, no_data, no_data, no_data 256.399994 2.569541 291.0 19982.483 91 308648.446 18234.622619 -1.000000e+12 0 3 1 0 LINESTRING (-77.06133 49.85771, -77.06092 49.8...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
4168 76500000111 -1.000000e+12 -1.000000e+12 no_data 18.214094 -65.999696 no_data -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 5.381931e+00 1.708323e+00 -1.000000e+12 -1.000000e+12 4.289900e+03 8.220090e+02 2.589700e+03 8.220000e+02 0.000000e+00 -1.000000e+12 -1.000000e+12 0.000000e+00 1.312333e+02 5.362288e+01 -1.001659e+04 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 29360570 29360570 3 167805952 0.000000e+00 0 -999 1 0 0.000000e+00 2 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 1 1 76500000121, no_data, no_data, no_data 76500000101, no_data, no_data, no_data 63.100002 20.898301 30.0 415.706 4 44510.176 797.084050 -1.000000e+12 0 1 1 0 LINESTRING (-66.00022 18.21743, -65.99988 18.2...
4782 76500000111 7.648387e+08 7.648388e+08 2024-03-27T07:12:06Z 18.214094 -65.999696 no_data -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 -1.000000e+12 1.050136e+02 5.887500e+00 -1.000000e+12 -1.000000e+12 8.370460e+04 1.859891e+03 3.317430e+04 1.859900e+03 1.099200e+04 -1.000000e+12 -1.000000e+12 0.000000e+00 8.057854e+01 2.287622e+01 -9.566129e+03 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 29360570 29360570 3 167822346 0.000000e+00 0 -999 1 0 0.000000e+00 2 -4.162080e+01 -1.000000e+12 7.616775e-02 1.816489e-03 2.868717e-03 1.951058e-03 -2.288368e+00 -1.447217e-01 -6.110484e-03 1.135712e-01 1 1 76500000121, no_data, no_data, no_data 76500000101, no_data, no_data, no_data 63.100002 20.898301 30.0 415.706 4 44510.176 797.084050 -1.000000e+12 0 1 1 0 LINESTRING (-66.00022 18.21743, -65.99988 18.2...
3557 76500000141 7.612333e+08 7.612334e+08 2024-02-14T13:41:59Z 18.197974 -65.966375 no_data 8.343050e+01 1.320800e-01 9.667000e-02 -1.000000e+12 -1.000000e+12 -1.743150e-03 6.174656e-05 6.167364e-05 -2.599585e-03 1.931517e-05 1.908077e-05 1.981202e+02 1.617387e+00 -1.000000e+12 -1.000000e+12 1.700321e+06 1.293682e+04 1.584683e+06 1.293680e+04 2.523898e+05 -1.000000e+12 -1.000000e+12 7.045200e+00 1.175871e+02 -7.604584e+01 -1.280353e+04 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 25166265 25166265 1 18446 0.000000e+00 0 -999 0 23 5.348837e-01 0 -4.157200e+01 -1.154650e-05 -1.459779e-01 -1.319069e-02 -9.707801e-03 3.038016e-03 -2.302595e+00 -1.840162e-01 -9.136316e-03 1.154844e-01 1 1 76500000136, no_data, no_data, no_data 76500000121, no_data, no_data, no_data 73.500000 54.921901 48.0 277.916 43 53297.124 8582.267791 -1.000000e+12 0 2 1 0 LINESTRING (-66.00009 18.20822, -66 18.20795, ...
4169 76500000141 7.630360e+08 7.630361e+08 2024-03-06T10:27:03Z 18.197974 -65.966375 no_data 8.410640e+01 1.308600e-01 9.499000e-02 -1.000000e+12 -1.000000e+12 1.133056e-03 5.397657e-05 5.389314e-05 2.740521e-03 1.123223e-05 1.082419e-05 1.888985e+02 1.582039e+00 -1.000000e+12 -1.000000e+12 1.621177e+06 1.324083e+04 1.580981e+06 1.324080e+04 2.817057e+05 -1.000000e+12 -1.000000e+12 7.344700e+00 1.254368e+02 -5.885571e+01 -1.313328e+04 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 8389049 8389049 1 34830 0.000000e+00 0 -999 1 20 4.651163e-01 0 -4.157211e+01 -4.823000e-07 -1.097062e-01 -7.916918e-03 -9.235167e-03 2.664745e-03 -2.291559e+00 -2.168627e-01 -2.814074e-03 5.986552e-01 1 1 76500000136, no_data, no_data, no_data 76500000121, no_data, no_data, no_data 73.500000 54.921901 48.0 277.916 43 53297.124 8582.267791 -1.000000e+12 0 2 1 0 LINESTRING (-66.00009 18.20822, -66 18.20795, ...
4783 76500000141 7.648387e+08 7.648388e+08 2024-03-27T07:12:07Z 18.197974 -65.966375 no_data 8.450200e+01 1.285600e-01 9.180000e-02 -1.000000e+12 -1.000000e+12 -9.365186e-04 4.203354e-05 4.192635e-05 -2.301596e-03 9.526120e-06 9.041410e-06 2.025074e+02 1.723306e+00 -1.000000e+12 -1.000000e+12 1.737973e+06 1.436756e+04 1.688347e+06 1.436760e+04 3.487453e+05 -1.000000e+12 -1.000000e+12 8.666000e+00 1.322138e+02 -7.806812e+01 -1.305011e+04 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 -1.000000e+12 -1.000000e+12 -1.000000e+12 -999 25166265 25166265 1 2062 0.000000e+00 0 -999 0 27 6.279070e-01 0 -4.157457e+01 -9.902700e-06 7.608656e-02 1.759067e-03 2.789320e-03 1.949312e-03 -2.284623e+00 -1.427195e-01 -6.109832e-03 1.668351e-01 1 1 76500000136, no_data, no_data, no_data 76500000121, no_data, no_data, no_data 73.500000 54.921901 48.0 277.916 43 53297.124 8582.267791 -1.000000e+12 0 2 1 0 LINESTRING (-66.00009 18.20822, -66 18.20795, ...

6938 rows × 127 columns

Exploring the dataset

What acquisition dates and rivers do our downloaded files cover?

print('Available dates are:')
print(np.unique([i[:10] for i in SWOT_HR_df['time_str']]))
print('Available rivers are:')
print(np.unique([i for i in SWOT_HR_df['river_name']]))
Available dates are:
['2024-02-04' '2024-02-06' '2024-02-14' '2024-02-25' '2024-02-27'
 '2024-03-06' '2024-03-17' '2024-03-18' '2024-03-27' 'no_data']
Available rivers are:
['Androscoggin River' 'Batten Kill' 'Bras Saint-Victor' 'Bras du Nord'
 'Concord River' 'Connecticut River' 'Deerfield River' 'Farmington River'
 'Grasse River' 'Hoosic River' 'Housatonic River' 'Hudson River'
 'Indian River' 'Komaktorvik River' 'La Grande River' 'Lac Saint-Louis'
 'Lamoille River' 'Magalloway River' 'Merrimack River' 'Missisquoi River'
 'Mohawk River' 'Otter Creek' 'Passumsic River' 'Quinebaug River'
 'Racquette River' 'Sacandaga River' 'Saguenay River'
 'Saint Lawrence River' 'Saint Regis River' 'Shetucket River'
 'South Nation River' 'Thames River' 'Vieux-Comptoir River' 'West River'
 'White River' 'Winooski River' 'no_data']

Filter dataframe by river name of interest and plot selected reaches:

Note: Some rivers have multiple names, hence using the contains function

# Enter river name
river = "Connecticut River"  # e.g. "Rhine", "Connecticut River"

## Filter dataframe
SWOT_HR_df_river = SWOT_HR_df[(SWOT_HR_df.river_name.str.contains(river))]

# Plot geopandas dataframe with 'explore' by reach id
SWOT_HR_df_river[['reach_id','river_name','geometry']].explore('reach_id', style_kwds=dict(weight=6))
Make this Notebook Trusted to load map: File -> Trust Notebook

Filter dataframe by latitude/longitude of interest:

lat_start = {"Connecticut River": 41,
             "Rhine": 46.5
            }
lat_end   = {"Connecticut River": 45,
             "Rhine": 52
            }
lon_start = {"Connecticut River": -73,
             "Rhine": 6
            }
lon_end   = {"Connecticut River": -71,
             "Rhine": 10
            }

## Filter dataframe
SWOT_HR_df_box = SWOT_HR_df[(SWOT_HR_df.p_lat > lat_start[river]) & (SWOT_HR_df.p_lat < lat_end[river]) & (SWOT_HR_df.p_lon > lon_start[river]) & (SWOT_HR_df.p_lon < lon_end[river])]

# Plot geopandas dataframe with 'explore' by river name
SWOT_HR_df_box[['reach_id','river_name','geometry']].explore('river_name', style_kwds=dict(weight=6))
Make this Notebook Trusted to load map: File -> Trust Notebook

2. River longitudinal profile: trace reaches downstream of given starting reach using rch_id_dn field

WARNING: This works as long as the data is exhaustive (no missing SWORD reaches)

First, let’s set up a dictionary relating all reaches in the dataset to their downstream neighbor

Note: rch_dn_dict[rch_id] gives a list of all the reaches directly downstream from rch_id

# Format rch_id_dn for dictionary. Rch_id_dn allows for multiple downstream reaches to be stored
# Also removes spaces in attribute field
rch_id_dn = [[x.strip() for x in SWOT_HR_df.rch_id_dn[j].split(',')] for j in range(0,len(SWOT_HR_df.rch_id_dn))]

# Filter upstream reach ids to remove 'no_data'
rch_id_dn_filter = [[x for x in dn_id if x.isnumeric()] for dn_id in rch_id_dn]

# Create lookup dictionary for river network topology: Downstream
rch_dn_dict = {SWOT_HR_df.reach_id[i]: rch_id_dn_filter[i] for i in range(len(SWOT_HR_df))}

Then, starting from a given reach, let’s trace all connected downstream reaches

# Enter reach_id from which we will trace downstream    (e.g. headwaters of the Connecticut River)
rch_dn_st = {"Connecticut River": '73120000021',
             "Rhine": '23267000651'
            }

# Initialize list to store downstream reaches, including starting reach
rch_dn_list = [rch_dn_st[river]]
# Retrieve first downstream id of starting reach and add to list
rch_dn_next = rch_dn_dict[rch_dn_st[river]][0]

# Trace next downstream reach until we hit the outlet (or here the last reach on file)
while len(rch_dn_next) != 0:
    # Add reach to list if value exists
    if len(rch_dn_next) != 0:
        rch_dn_list.append(rch_dn_next)
    # Recursively retrieve first downstream id of next reach
    # Catch error if reach isn't in downloaded data
    try:
        rch_dn_next = rch_dn_dict[rch_dn_next][0]
    except:
        break

Finally, we filtered our downloaded data by the traced reaches to create a plot

# Filter downloaded data by downstream traced reaches
SWOT_dn_trace = SWOT_HR_df[SWOT_HR_df.reach_id.isin(rch_dn_list)]

# Remove reaches from rch_dn_list that are not present in SWOT data
rch_dn_list = [rch for rch in rch_dn_list if rch in SWOT_HR_df.reach_id.values]

SWOT_dn_trace[['reach_id','river_name','geometry']].explore('river_name', style_kwds=dict(weight=6))
Make this Notebook Trusted to load map: File -> Trust Notebook

It looks like the data was cut short!

Must be an error in the SWORD Database. Let’s check by singling out the reach it left off on.

It looks like reach ‘73120000531’ at the time of this run (4/1/24) has ‘no_data’ in the rch_id_up and rch_id_dn fields when there should be values. To help out the SWORD database creators, we can report this discrepancy by clicking the Report Reach button at https://www.swordexplorer.com/. SWORD should be updated quarterly.

SWOT_HR_df[SWOT_HR_df.reach_id == '73120000531']

3. Watershed analysis: trace reaches upstream of starting reach using rch_id_up field

WARNING: This works as long as the data is exhaustive (no missing SWORD reaches)

First, let’s set up a dictionary relating all reaches in the dataset to their upstream neighbor

Note: rch_up_dict[rch_id] gives a list of all the reaches directly upstream from rch_id

# Format rch_id_up for dictionary. Rch_id_up allows for multiple upstream reaches to be stored
# Also removes spaces in attribute field
rch_id_up = [[x.strip() for x in SWOT_HR_df.rch_id_up[j].split(',')] for j in range(0,len(SWOT_HR_df.rch_id_up))]

# Filter upstream reach ids to remove 'no_data'
rch_id_up_fil = [[x for x in ups_id if x.isnumeric()] for ups_id in rch_id_up]

# Create lookup dictionary for river network topology: Upstream
rch_up_dict = {SWOT_HR_df.reach_id[i]: rch_id_up_fil[i] for i in range(len(SWOT_HR_df))}

Then, starting from a given reach, let’s trace all connected upstream reaches

This adds a bit of complexity, as we need to keep track of multiple branches upstream of the starting reach.

# Enter reach_id from which we will trace upstream    (e.g. outlet of the Connecticut River)
rch_up_st = {"Connecticut River": '73120000021',
             "Rhine": '23265000051'
            }

# Initialize list to store traced upstream reaches, including starting reach
rch_up_list = [rch_up_st[river]]
# Retrieve ids of reaches upstream of starting reach and add to list
rch_up_next = rch_up_dict[rch_up_st[river]]
# For upstream tracing, we need to set a list of next upstream ids to start while loop
rch_next_id = rch_up_next

# Loop until no more reaches to trace
while len(rch_next_id) != 0:
    # Initialize list to store next upstream ids
    rch_next_id = []
    # Loop through next upstream ids for given reach
    for rch_up_sel in rch_up_next:
        # Get values of existing upstream ids of rch_up_next reaches
        # If reach isn't in SWOT data (usually ghost reaches), continue to next reach
        try:
            rch_next_id = rch_next_id + rch_up_dict[rch_up_sel]
        except:
            continue
        # Append id to list
        rch_up_list.append(rch_up_sel)
    # If reaches exist, add to list for next cycle of tracing
    if len(rch_next_id) != 0:
        rch_up_next = rch_next_id

Finally, we filtered our downloaded data by the traced reaches to create a plot

# Filter downloaded data by upstream traced reaches
SWOT_up_trace = SWOT_HR_df[SWOT_HR_df.reach_id.isin(rch_up_list)]

# Remove reaches from rch_up_list that are not present in SWOT data
rch_up_list = [rch for rch in rch_up_list if rch in SWOT_HR_df.reach_id.values]

SWOT_up_trace[['reach_id','river_name','geometry']].explore('river_name', style_kwds=dict(weight=6))
Make this Notebook Trusted to load map: File -> Trust Notebook

It looks like the data was cut short!

Must be an error in the SWORD Database. Let’s check by singling out the reach it left off on.

It looks like reach ‘73120000131’ at the time of this run (4/1/24) has ‘no_data’ in the rch_id_up field when there should be values. To help out the SWORD database creators, we can report this discrepancy by clicking the Report Reach button at https://www.swordexplorer.com/. SWORD should be updated quarterly.

SWOT_HR_df[SWOT_HR_df.reach_id == '73120000131']

4. Visualize and plot a time series of WSE/width/slope longitudinal profiles

Let’s create a time series dataframe from the downstream filtered database

# Retrieve all possible acquisition dates (keeping only YYYY-MM-DD)
dates = np.unique([i[:10] for i in [x for x in SWOT_HR_df['time_str'] if x!='no_data']])

# Create a new database for time series analysis with unique reach_ids
SWOT_dn_trace_time = SWOT_dn_trace.set_index('reach_id').groupby(level=0) \
                                  .apply(lambda df: df.reset_index(drop=True)) \
                                  .unstack().sort_index(axis=1, level=1)

SWOT_dn_trace_time.columns = ['{}_{}'.format(x[0],dates[x[1]]) for x in SWOT_dn_trace_time.columns]

Plot a longitudinal profile for selected SWOT variable

# Explore variables you could choose to plot
for var in ["wse","slope","width","len"]:
    print(SWOT_dn_trace.columns[SWOT_dn_trace.columns.str.contains(var)])
Index(['wse', 'wse_u', 'wse_r_u', 'wse_c', 'wse_c_u', 'area_wse', 'p_wse',
       'p_wse_var'],
      dtype='str')
Index(['slope', 'slope_u', 'slope_r_u', 'slope2', 'slope2_u', 'slope2_r_u'], dtype='str')
Index(['width', 'width_u', 'width_c', 'width_c_u', 'p_width'], dtype='str')
Index(['p_length'], dtype='str')
# Enter variable of interest for plotting
varstr = "wse"

The error that outputs the following cell is because of the SWORD database discrepancy noted above. When this is corrected, only the graph should appear without the error.

# 1. Calculate the cumulative length first
length_list = np.nan_to_num([SWOT_dn_trace.p_length[SWOT_dn_trace.reach_id == rch].mean()/1000 for rch in rch_dn_list])
cumlength_list = np.cumsum(length_list)

# 2. Plot a longitudinal profile from the downstream tracing database
plt.figure(figsize=(12,8))

for t in dates:
    col_name = varstr + '_' + t
    
    # Safely check if the date column exists in the dataframe
    if col_name in SWOT_dn_trace_time.columns:
        
        # Store the quantity of interest (wse, width etc.) at time t
        value = SWOT_dn_trace_time.loc[rch_dn_list, col_name]
        
        # Remove set negative values (bad observations) to NaN and forward fill NaNs
        value[value < 0] = np.nan
        value = value.ffill()
        
        # Plot the data
        plt.plot(cumlength_list, value, label = col_name)
    else:
        print(f"Skipping {col_name}: Column not found in database.")
        
plt.xlabel('Downstream Distance (km)')
plt.ylabel(varstr)
plt.legend()
plt.show()
Skipping wse_2024-03-17: Column not found in database.
Skipping wse_2024-03-18: Column not found in database.
Skipping wse_2024-03-27: Column not found in database.

Map the longitudinal profile of selected SWOT variable

# Choose a date
date = dates[1]
#Set one column as the active geometry in the new database
SWOT_dn_trace_time = SWOT_dn_trace_time.set_geometry("geometry_"+date)

# 1. Safely extract valid data (>0 and not NaN)
valid_data = [i for i in SWOT_dn_trace_time[varstr+'_'+date] if i > 0]

# 2. Calculate cleaner colorbar bounds, with a fallback if data is empty
if len(valid_data) > 0:
    vmin = np.percentile(valid_data, 5)
    vmax = np.percentile(valid_data, 95)
else:
    vmin, vmax = 0, 1  # Fallback bounds if the column has no valid data for this date

# Interactive map
SWOT_dn_trace_time.explore(
    varstr+'_'+date,
    vmin = vmin,
    vmax = vmax,
    cmap = "Blues", 
    control_scale = True,
    tooltip = varstr+'_'+date,  # Note: Changed dates[0] to date to match the active column
    popup = True,  # show all values in popup (on click)
    tiles = "OpenStreetMap",  
    style_kwds=dict(weight=10)
)
Make this Notebook Trusted to load map: File -> Trust Notebook

Supplemental

We can also map the upstream traced database

SWOT_up_trace_time = SWOT_up_trace.set_index('reach_id').groupby(level=0) \
                                  .apply(lambda df: df.reset_index(drop=True)) \
                                  .unstack().sort_index(axis=1, level=1)

SWOT_up_trace_time.columns = ['{}_{}'.format(x[0],dates[x[1]]) for x in SWOT_up_trace_time.columns]

SWOT_up_trace_time = SWOT_up_trace_time.set_geometry("geometry_"+date)

#Set cleaner colorbar bounds for better visualization
vmin = np.percentile([i for i in SWOT_up_trace_time[varstr+'_'+date] if i>0],5)
vmax = np.percentile([i for i in SWOT_up_trace_time[varstr+'_'+date] if i>0],95)

# Interactive map
SWOT_up_trace_time.explore(varstr+'_'+date,
                           vmin = vmin,
                           vmax = vmax,
                           cmap = "Blues", #"Blues",
                           control_scale = True,
                           tooltip = varstr+'_'+dates[0],  # show "varstr+'_'+dates[0]" value in tooltip (on hover)
                           popup = True,  # show all values in popup (on click)
                           tiles = "OpenStreetMap",  # use "CartoDB positron" tiles
                           style_kwds=dict(weight=5)
                          )
Make this Notebook Trusted to load map: File -> Trust Notebook

How to filter out raster data to reveal water bodies?

We can also search by spatial bounding box. Raster tiles make it easy to do this since their footprints in the metadata are smaller. If you want the tile number, you can find it in the kmz file.

# Retrieve granules from all days to find the cycle corresponding to the desired date
raster_results = earthaccess.search_data(short_name = 'SWOT_L2_HR_Raster_100m_D', 
                                         temporal = ('2024-01-25 00:00:00', '2024-03-29 23:59:59'), 
                                         bounding_box = (-72.44, 42.27, -72.15, 42.54)) # Quabbin Reservoir in Massachusetts
print(f"Found {len(raster_results)} granules")
Found 41 granules

Display details of accessed files

print([i for i in raster_results])
[Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'GPolygons': [{'Boundary': {'Points': [{'Latitude': 42.22719163055778, 'Longitude': -72.42544746840993}, {'Latitude': 41.952112658860564, 'Longitude': -70.92302744094494}, {'Latitude': 43.06648070862194, 'Longitude': -70.53315398295408}, {'Latitude': 43.348708275316724, 'Longitude': -72.06027029431364}, {'Latitude': 42.22719163055778, 'Longitude': -72.42544746840993}]}}], 'BoundingRectangles': [{'WestBoundingCoordinate': -72.42544746840993, 'SouthBoundingCoordinate': 41.952112658860564, 'EastBoundingCoordinate': -70.53315398295408, 'NorthBoundingCoordinate': 43.348708275316724}]}, 'Track': {'Cycle': 10, 'Passes': [{'Pass': 35, 'Tiles': ['228L', '229L', '230L', '231L', '228R', '229R', '230R', '231R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-01-26T06:07:09.985Z', 'BeginningDateTime': '2024-01-26T06:06:48.882Z'}}
Size(MB): 88.84452438354492
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM19T_N_x_x_x_010_035_115F_20240126T060648_20240126T060709_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'BoundingRectangles': [{'WestBoundingCoordinate': -180, 'SouthBoundingCoordinate': -90, 'EastBoundingCoordinate': 180, 'NorthBoundingCoordinate': 90}]}, 'Track': {'Cycle': 10, 'Passes': [{'Pass': 73, 'Tiles': ['278L', '279L', '280L', '278R', '279R', '280R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-01-27T14:50:25.936Z', 'BeginningDateTime': '2024-01-27T14:50:08.784Z'}}
Size(MB): 51.38999366760254
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM60W_N_x_x_x_010_073_140F_20240127T145008_20240127T145025_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'BoundingRectangles': [{'WestBoundingCoordinate': -180, 'SouthBoundingCoordinate': -90, 'EastBoundingCoordinate': 180, 'NorthBoundingCoordinate': 90}]}, 'Track': {'Cycle': 10, 'Passes': [{'Pass': 138, 'Tiles': ['034L', '035L', '036L', '037L', '034R', '035R', '036R', '037R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-01-29T21:53:49.332Z', 'BeginningDateTime': '2024-01-29T21:53:28.199Z'}}
Size(MB): 69.23373413085938
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM01W_N_x_x_x_010_138_018F_20240129T215328_20240129T215349_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'BoundingRectangles': [{'WestBoundingCoordinate': -180, 'SouthBoundingCoordinate': -90, 'EastBoundingCoordinate': 180, 'NorthBoundingCoordinate': 90}]}, 'Track': {'Cycle': 10, 'Passes': [{'Pass': 194, 'Tiles': ['036L', '037L', '038L', '039L', '036R', '037R', '038R', '039R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-01-31T21:55:11.296Z', 'BeginningDateTime': '2024-01-31T21:54:50.168Z'}}
Size(MB): 71.87422847747803
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM60W_N_x_x_x_010_194_019F_20240131T215450_20240131T215511_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'BoundingRectangles': [{'WestBoundingCoordinate': -180, 'SouthBoundingCoordinate': -90, 'EastBoundingCoordinate': 180, 'NorthBoundingCoordinate': 90}]}, 'Track': {'Cycle': 10, 'Passes': [{'Pass': 222, 'Tiles': ['040L', '041L', '042L', '043L', '040R', '041R', '042R', '043R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-02-01T21:56:22.333Z', 'BeginningDateTime': '2024-02-01T21:56:01.204Z'}}
Size(MB): 78.30703639984131
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM60V_N_x_x_x_010_222_021F_20240201T215601_20240201T215622_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'BoundingRectangles': [{'WestBoundingCoordinate': -180, 'SouthBoundingCoordinate': -90, 'EastBoundingCoordinate': 180, 'NorthBoundingCoordinate': 90}]}, 'Track': {'Cycle': 10, 'Passes': [{'Pass': 267, 'Tiles': ['272L', '273L', '274L', '275L', '272R', '273R', '274R', '275R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-02-03T13:10:13.181Z', 'BeginningDateTime': '2024-02-03T13:10:00.739Z'}}
Size(MB): 36.83663082122803
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM01W_N_x_x_x_010_267_137F_20240203T131000_20240203T131013_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'GPolygons': [{'Boundary': {'Points': [{'Latitude': 43.348708275316724, 'Longitude': -72.44263832068619}, {'Latitude': 43.066480708621924, 'Longitude': -73.96975463204575}, {'Latitude': 41.95211265886055, 'Longitude': -73.57988117405536}, {'Latitude': 42.22719163055777, 'Longitude': -72.07746114659037}, {'Latitude': 43.348708275316724, 'Longitude': -72.44263832068619}]}}], 'BoundingRectangles': [{'WestBoundingCoordinate': -73.96975463204575, 'SouthBoundingCoordinate': 41.95211265886055, 'EastBoundingCoordinate': -72.07746114659037, 'NorthBoundingCoordinate': 43.348708275316724}]}, 'Track': {'Cycle': 10, 'Passes': [{'Pass': 298, 'Tiles': ['078L', '079L', '080L', '081L', '078R', '079R', '080R', '081R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-02-04T15:12:41.048Z', 'BeginningDateTime': '2024-02-04T15:12:19.946Z'}}
Size(MB): 64.09405136108398
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM18T_N_x_x_x_010_298_040F_20240204T151219_20240204T151241_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'BoundingRectangles': [{'WestBoundingCoordinate': -180, 'SouthBoundingCoordinate': -90, 'EastBoundingCoordinate': 180, 'NorthBoundingCoordinate': 90}]}, 'Track': {'Cycle': 10, 'Passes': [{'Pass': 323, 'Tiles': ['274L', '275L', '276L', '277L', '274R', '275R', '276R', '277R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-02-05T13:11:35.214Z', 'BeginningDateTime': '2024-02-05T13:11:14.084Z'}}
Size(MB): 57.32732009887695
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM60W_N_x_x_x_010_323_138F_20240205T131114_20240205T131135_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'GPolygons': [{'Boundary': {'Points': [{'Latitude': 42.22719163055777, 'Longitude': -73.65832419541033}, {'Latitude': 41.95211265886055, 'Longitude': -72.15590416794534}, {'Latitude': 43.066480708621924, 'Longitude': -71.76603070995414}, {'Latitude': 43.34870827531672, 'Longitude': -73.2931470213137}, {'Latitude': 42.22719163055777, 'Longitude': -73.65832419541033}]}}], 'BoundingRectangles': [{'WestBoundingCoordinate': -73.65832419541033, 'SouthBoundingCoordinate': 41.95211265886055, 'EastBoundingCoordinate': -71.76603070995414, 'NorthBoundingCoordinate': 43.34870827531672}]}, 'Track': {'Cycle': 10, 'Passes': [{'Pass': 341, 'Tiles': ['228L', '229L', '230L', '231L', '228R', '229R', '230R', '231R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-02-06T04:29:57.503Z', 'BeginningDateTime': '2024-02-06T04:29:36.398Z'}}
Size(MB): 62.636765480041504
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM18T_N_x_x_x_010_341_115F_20240206T042936_20240206T042957_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'BoundingRectangles': [{'WestBoundingCoordinate': -180, 'SouthBoundingCoordinate': -90, 'EastBoundingCoordinate': 180, 'NorthBoundingCoordinate': 90}]}, 'Track': {'Cycle': 10, 'Passes': [{'Pass': 416, 'Tiles': ['029L', '030L', '031L', '029R', '030R', '031R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-02-08T20:15:05.330Z', 'BeginningDateTime': '2024-02-08T20:14:44.460Z'}}
Size(MB): 70.48922920227051
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM60W_N_x_x_x_010_416_015F_20240208T201444_20240208T201505_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'BoundingRectangles': [{'WestBoundingCoordinate': -180, 'SouthBoundingCoordinate': -90, 'EastBoundingCoordinate': 180, 'NorthBoundingCoordinate': 90}]}, 'Track': {'Cycle': 10, 'Passes': [{'Pass': 472, 'Tiles': ['034L', '035L', '036L', '037L', '034R', '035R', '036R', '037R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-02-10T20:17:07.503Z', 'BeginningDateTime': '2024-02-10T20:16:46.372Z'}}
Size(MB): 67.62866878509521
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM60W_N_x_x_x_010_472_018F_20240210T201646_20240210T201707_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'BoundingRectangles': [{'WestBoundingCoordinate': -180, 'SouthBoundingCoordinate': -90, 'EastBoundingCoordinate': 180, 'NorthBoundingCoordinate': 90}]}, 'Track': {'Cycle': 10, 'Passes': [{'Pass': 500, 'Tiles': ['038L', '039L', '040L', '038R', '039R', '040R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-02-11T20:18:13.936Z', 'BeginningDateTime': '2024-02-11T20:17:57.633Z'}}
Size(MB): 42.887593269348145
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM60W_N_x_x_x_010_500_020F_20240211T201757_20240211T201813_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'BoundingRectangles': [{'WestBoundingCoordinate': -180, 'SouthBoundingCoordinate': -90, 'EastBoundingCoordinate': 180, 'NorthBoundingCoordinate': 90}]}, 'Track': {'Cycle': 10, 'Passes': [{'Pass': 545, 'Tiles': ['272L', '273L', '272R', '273R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-02-13T11:32:09.951Z', 'BeginningDateTime': '2024-02-13T11:32:02.408Z'}}
Size(MB): 35.62080097198486
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM01W_N_x_x_x_010_545_136F_20240213T113202_20240213T113209_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'BoundingRectangles': [{'WestBoundingCoordinate': -180, 'SouthBoundingCoordinate': -90, 'EastBoundingCoordinate': 180, 'NorthBoundingCoordinate': 90}]}, 'Track': {'Cycle': 10, 'Passes': [{'Pass': 573, 'Tiles': ['274L', '275L', '276L', '277L', '274R', '275R', '276R', '277R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-02-14T11:33:21.208Z', 'BeginningDateTime': '2024-02-14T11:33:00.075Z'}}
Size(MB): 69.1359281539917
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM01W_N_x_x_x_010_573_138F_20240214T113300_20240214T113321_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'GPolygons': [{'Boundary': {'Points': [{'Latitude': 43.34870827531672, 'Longitude': -71.20976162168664}, {'Latitude': 43.066480708621924, 'Longitude': -72.7368779330462}, {'Latitude': 41.95211265886055, 'Longitude': -72.3470044750558}, {'Latitude': 42.22719163055777, 'Longitude': -70.84458444759079}, {'Latitude': 43.34870827531672, 'Longitude': -71.20976162168664}]}}], 'BoundingRectangles': [{'WestBoundingCoordinate': -72.7368779330462, 'SouthBoundingCoordinate': 41.95211265886055, 'EastBoundingCoordinate': -70.84458444759079, 'NorthBoundingCoordinate': 43.34870827531672}]}, 'Track': {'Cycle': 10, 'Passes': [{'Pass': 576, 'Tiles': ['078L', '079L', '080L', '081L', '078R', '079R', '080R', '081R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-02-14T13:34:58.030Z', 'BeginningDateTime': '2024-02-14T13:34:36.929Z'}}
Size(MB): 79.11263751983643
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM19T_N_x_x_x_010_576_040F_20240214T133436_20240214T133458_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'GPolygons': [{'Boundary': {'Points': [{'Latitude': 42.22719163055778, 'Longitude': -72.42544746840993}, {'Latitude': 41.952112658860564, 'Longitude': -70.92302744094494}, {'Latitude': 43.06648070862194, 'Longitude': -70.53315398295408}, {'Latitude': 43.348708275316724, 'Longitude': -72.06027029431364}, {'Latitude': 42.22719163055778, 'Longitude': -72.42544746840993}]}}], 'BoundingRectangles': [{'WestBoundingCoordinate': -72.42544746840993, 'SouthBoundingCoordinate': 41.952112658860564, 'EastBoundingCoordinate': -70.53315398295408, 'NorthBoundingCoordinate': 43.348708275316724}]}, 'Track': {'Cycle': 11, 'Passes': [{'Pass': 35, 'Tiles': ['228L', '229L', '230L', '231L', '228R', '229R', '230R', '231R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-02-16T02:52:14.795Z', 'BeginningDateTime': '2024-02-16T02:51:53.691Z'}}
Size(MB): 85.59277153015137
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM19T_N_x_x_x_011_035_115F_20240216T025153_20240216T025214_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'BoundingRectangles': [{'WestBoundingCoordinate': -180, 'SouthBoundingCoordinate': -90, 'EastBoundingCoordinate': 180, 'NorthBoundingCoordinate': 90}]}, 'Track': {'Cycle': 11, 'Passes': [{'Pass': 73, 'Tiles': ['278L', '279L', '280L', '278R', '279R', '280R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-02-17T11:35:30.829Z', 'BeginningDateTime': '2024-02-17T11:35:13.673Z'}}
Size(MB): 49.51613235473633
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM60W_N_x_x_x_011_073_140F_20240217T113513_20240217T113530_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'BoundingRectangles': [{'WestBoundingCoordinate': -180, 'SouthBoundingCoordinate': -90, 'EastBoundingCoordinate': 180, 'NorthBoundingCoordinate': 90}]}, 'Track': {'Cycle': 11, 'Passes': [{'Pass': 138, 'Tiles': ['034L', '035L', '036L', '037L', '034R', '035R', '036R', '037R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-02-19T18:38:54.331Z', 'BeginningDateTime': '2024-02-19T18:38:33.203Z'}}
Size(MB): 68.13836574554443
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM01W_N_x_x_x_011_138_018F_20240219T183833_20240219T183854_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'BoundingRectangles': [{'WestBoundingCoordinate': -180, 'SouthBoundingCoordinate': -90, 'EastBoundingCoordinate': 180, 'NorthBoundingCoordinate': 90}]}, 'Track': {'Cycle': 11, 'Passes': [{'Pass': 194, 'Tiles': ['036L', '037L', '038L', '039L', '036R', '037R', '038R', '039R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-02-21T18:40:16.419Z', 'BeginningDateTime': '2024-02-21T18:39:55.293Z'}}
Size(MB): 80.25177192687988
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM60W_N_x_x_x_011_194_019F_20240221T183955_20240221T184016_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'BoundingRectangles': [{'WestBoundingCoordinate': -180, 'SouthBoundingCoordinate': -90, 'EastBoundingCoordinate': 180, 'NorthBoundingCoordinate': 90}]}, 'Track': {'Cycle': 11, 'Passes': [{'Pass': 222, 'Tiles': ['040L', '041L', '042L', '043L', '040R', '041R', '042R', '043R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-02-22T18:41:27.516Z', 'BeginningDateTime': '2024-02-22T18:41:06.388Z'}}
Size(MB): 73.7133321762085
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM60V_N_x_x_x_011_222_021F_20240222T184106_20240222T184127_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'BoundingRectangles': [{'WestBoundingCoordinate': -180, 'SouthBoundingCoordinate': -90, 'EastBoundingCoordinate': 180, 'NorthBoundingCoordinate': 90}]}, 'Track': {'Cycle': 11, 'Passes': [{'Pass': 267, 'Tiles': ['272L', '273L', '274L', '275L', '272R', '273R', '274R', '275R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-02-24T09:55:18.478Z', 'BeginningDateTime': '2024-02-24T09:55:06.014Z'}}
Size(MB): 35.20975208282471
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM01W_N_x_x_x_011_267_137F_20240224T095506_20240224T095518_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'GPolygons': [{'Boundary': {'Points': [{'Latitude': 43.348708275316724, 'Longitude': -72.44263832068619}, {'Latitude': 43.066480708621924, 'Longitude': -73.96975463204575}, {'Latitude': 41.95211265886055, 'Longitude': -73.57988117405536}, {'Latitude': 42.22719163055777, 'Longitude': -72.07746114659037}, {'Latitude': 43.348708275316724, 'Longitude': -72.44263832068619}]}}], 'BoundingRectangles': [{'WestBoundingCoordinate': -73.96975463204575, 'SouthBoundingCoordinate': 41.95211265886055, 'EastBoundingCoordinate': -72.07746114659037, 'NorthBoundingCoordinate': 43.348708275316724}]}, 'Track': {'Cycle': 11, 'Passes': [{'Pass': 298, 'Tiles': ['078L', '079L', '080L', '081L', '078R', '079R', '080R', '081R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-02-25T11:57:46.348Z', 'BeginningDateTime': '2024-02-25T11:57:25.248Z'}}
Size(MB): 58.50580596923828
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM18T_N_x_x_x_011_298_040F_20240225T115725_20240225T115746_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'BoundingRectangles': [{'WestBoundingCoordinate': -180, 'SouthBoundingCoordinate': -90, 'EastBoundingCoordinate': 180, 'NorthBoundingCoordinate': 90}]}, 'Track': {'Cycle': 11, 'Passes': [{'Pass': 323, 'Tiles': ['274L', '275L', '276L', '277L', '274R', '275R', '276R', '277R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-02-26T09:56:40.605Z', 'BeginningDateTime': '2024-02-26T09:56:19.475Z'}}
Size(MB): 55.023494720458984
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM60W_N_x_x_x_011_323_138F_20240226T095619_20240226T095640_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'GPolygons': [{'Boundary': {'Points': [{'Latitude': 42.22719163055777, 'Longitude': -73.65832419541033}, {'Latitude': 41.95211265886055, 'Longitude': -72.15590416794534}, {'Latitude': 43.066480708621924, 'Longitude': -71.76603070995414}, {'Latitude': 43.34870827531672, 'Longitude': -73.2931470213137}, {'Latitude': 42.22719163055777, 'Longitude': -73.65832419541033}]}}], 'BoundingRectangles': [{'WestBoundingCoordinate': -73.65832419541033, 'SouthBoundingCoordinate': 41.95211265886055, 'EastBoundingCoordinate': -71.76603070995414, 'NorthBoundingCoordinate': 43.34870827531672}]}, 'Track': {'Cycle': 11, 'Passes': [{'Pass': 341, 'Tiles': ['228L', '229L', '230L', '231L', '228R', '229R', '230R', '231R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-02-27T01:15:02.918Z', 'BeginningDateTime': '2024-02-27T01:14:41.812Z'}}
Size(MB): 53.73810386657715
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM18T_N_x_x_x_011_341_115F_20240227T011441_20240227T011502_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'BoundingRectangles': [{'WestBoundingCoordinate': -180, 'SouthBoundingCoordinate': -90, 'EastBoundingCoordinate': 180, 'NorthBoundingCoordinate': 90}]}, 'Track': {'Cycle': 11, 'Passes': [{'Pass': 416, 'Tiles': ['028L', '029L', '030L', '031L', '028R', '029R', '030R', '031R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-02-29T17:00:10.847Z', 'BeginningDateTime': '2024-02-29T16:59:49.959Z'}}
Size(MB): 71.54834270477295
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM60W_N_x_x_x_011_416_015F_20240229T165949_20240229T170010_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'BoundingRectangles': [{'WestBoundingCoordinate': -180, 'SouthBoundingCoordinate': -90, 'EastBoundingCoordinate': 180, 'NorthBoundingCoordinate': 90}]}, 'Track': {'Cycle': 11, 'Passes': [{'Pass': 472, 'Tiles': ['034L', '035L', '036L', '037L', '034R', '035R', '036R', '037R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-03-02T17:02:12.751Z', 'BeginningDateTime': '2024-03-02T17:01:51.622Z'}}
Size(MB): 64.74141216278076
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM60W_N_x_x_x_011_472_018F_20240302T170151_20240302T170212_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'BoundingRectangles': [{'WestBoundingCoordinate': -180, 'SouthBoundingCoordinate': -90, 'EastBoundingCoordinate': 180, 'NorthBoundingCoordinate': 90}]}, 'Track': {'Cycle': 11, 'Passes': [{'Pass': 500, 'Tiles': ['038L', '039L', '040L', '038R', '039R', '040R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-03-03T17:03:18.911Z', 'BeginningDateTime': '2024-03-03T17:03:02.600Z'}}
Size(MB): 42.329471588134766
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM60W_N_x_x_x_011_500_020F_20240303T170302_20240303T170318_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'BoundingRectangles': [{'WestBoundingCoordinate': -180, 'SouthBoundingCoordinate': -90, 'EastBoundingCoordinate': 180, 'NorthBoundingCoordinate': 90}]}, 'Track': {'Cycle': 11, 'Passes': [{'Pass': 545, 'Tiles': ['272L', '273L', '272R', '273R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-03-05T08:17:14.523Z', 'BeginningDateTime': '2024-03-05T08:17:06.958Z'}}
Size(MB): 34.75948619842529
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM01W_N_x_x_x_011_545_136F_20240305T081706_20240305T081714_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'BoundingRectangles': [{'WestBoundingCoordinate': -180, 'SouthBoundingCoordinate': -90, 'EastBoundingCoordinate': 180, 'NorthBoundingCoordinate': 90}]}, 'Track': {'Cycle': 11, 'Passes': [{'Pass': 573, 'Tiles': ['274L', '275L', '276L', '277L', '274R', '275R', '276R', '277R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-03-06T08:18:25.523Z', 'BeginningDateTime': '2024-03-06T08:18:04.395Z'}}
Size(MB): 67.18124294281006
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM01W_N_x_x_x_011_573_138F_20240306T081804_20240306T081825_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'GPolygons': [{'Boundary': {'Points': [{'Latitude': 43.34870827531672, 'Longitude': -71.20976162168664}, {'Latitude': 43.066480708621924, 'Longitude': -72.7368779330462}, {'Latitude': 41.95211265886055, 'Longitude': -72.3470044750558}, {'Latitude': 42.22719163055777, 'Longitude': -70.84458444759079}, {'Latitude': 43.34870827531672, 'Longitude': -71.20976162168664}]}}], 'BoundingRectangles': [{'WestBoundingCoordinate': -72.7368779330462, 'SouthBoundingCoordinate': 41.95211265886055, 'EastBoundingCoordinate': -70.84458444759079, 'NorthBoundingCoordinate': 43.34870827531672}]}, 'Track': {'Cycle': 11, 'Passes': [{'Pass': 576, 'Tiles': ['078L', '079L', '080L', '081L', '078R', '079R', '080R', '081R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-03-06T10:20:02.253Z', 'BeginningDateTime': '2024-03-06T10:19:41.156Z'}}
Size(MB): 84.04668426513672
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM19T_N_x_x_x_011_576_040F_20240306T101941_20240306T102002_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'GPolygons': [{'Boundary': {'Points': [{'Latitude': 42.22719163055778, 'Longitude': -72.42544746840993}, {'Latitude': 41.952112658860564, 'Longitude': -70.92302744094494}, {'Latitude': 43.06648070862194, 'Longitude': -70.53315398295408}, {'Latitude': 43.348708275316724, 'Longitude': -72.06027029431364}, {'Latitude': 42.22719163055778, 'Longitude': -72.42544746840993}]}}], 'BoundingRectangles': [{'WestBoundingCoordinate': -72.42544746840993, 'SouthBoundingCoordinate': 41.952112658860564, 'EastBoundingCoordinate': -70.53315398295408, 'NorthBoundingCoordinate': 43.348708275316724}]}, 'Track': {'Cycle': 12, 'Passes': [{'Pass': 35, 'Tiles': ['228L', '229L', '230L', '231L', '228R', '229R', '230R', '231R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-03-07T23:37:18.702Z', 'BeginningDateTime': '2024-03-07T23:36:57.601Z'}}
Size(MB): 95.23939418792725
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM19T_N_x_x_x_012_035_115F_20240307T233657_20240307T233718_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'BoundingRectangles': [{'WestBoundingCoordinate': -180, 'SouthBoundingCoordinate': -90, 'EastBoundingCoordinate': 180, 'NorthBoundingCoordinate': 90}]}, 'Track': {'Cycle': 12, 'Passes': [{'Pass': 73, 'Tiles': ['278L', '279L', '280L', '278R', '279R', '280R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-03-09T08:20:34.359Z', 'BeginningDateTime': '2024-03-09T08:20:17.205Z'}}
Size(MB): 48.94499397277832
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM60W_N_x_x_x_012_073_140F_20240309T082017_20240309T082034_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'BoundingRectangles': [{'WestBoundingCoordinate': -180, 'SouthBoundingCoordinate': -90, 'EastBoundingCoordinate': 180, 'NorthBoundingCoordinate': 90}]}, 'Track': {'Cycle': 12, 'Passes': [{'Pass': 138, 'Tiles': ['034L', '035L', '036L', '037L', '034R', '035R', '036R', '037R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-03-11T15:23:57.202Z', 'BeginningDateTime': '2024-03-11T15:23:36.074Z'}}
Size(MB): 63.6975154876709
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM01W_N_x_x_x_012_138_018F_20240311T152336_20240311T152357_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'BoundingRectangles': [{'WestBoundingCoordinate': -180, 'SouthBoundingCoordinate': -90, 'EastBoundingCoordinate': 180, 'NorthBoundingCoordinate': 90}]}, 'Track': {'Cycle': 12, 'Passes': [{'Pass': 194, 'Tiles': ['036L', '037L', '038L', '039L', '036R', '037R', '038R', '039R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-03-13T15:25:18.768Z', 'BeginningDateTime': '2024-03-13T15:24:57.644Z'}}
Size(MB): 70.03241348266602
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM60W_N_x_x_x_012_194_019F_20240313T152457_20240313T152518_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'BoundingRectangles': [{'WestBoundingCoordinate': -180, 'SouthBoundingCoordinate': -90, 'EastBoundingCoordinate': 180, 'NorthBoundingCoordinate': 90}]}, 'Track': {'Cycle': 12, 'Passes': [{'Pass': 222, 'Tiles': ['040L', '041L', '042L', '043L', '040R', '041R', '042R', '043R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-03-14T15:26:29.617Z', 'BeginningDateTime': '2024-03-14T15:26:08.491Z'}}
Size(MB): 69.33616638183594
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM60V_N_x_x_x_012_222_021F_20240314T152608_20240314T152629_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'BoundingRectangles': [{'WestBoundingCoordinate': -180, 'SouthBoundingCoordinate': -90, 'EastBoundingCoordinate': 180, 'NorthBoundingCoordinate': 90}]}, 'Track': {'Cycle': 12, 'Passes': [{'Pass': 267, 'Tiles': ['272L', '273L', '274L', '275L', '272R', '273R', '274R', '275R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-03-16T06:40:20.419Z', 'BeginningDateTime': '2024-03-16T06:40:07.952Z'}}
Size(MB): 33.94359302520752
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM01W_N_x_x_x_012_267_137F_20240316T064007_20240316T064020_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'GPolygons': [{'Boundary': {'Points': [{'Latitude': 43.348708275316724, 'Longitude': -72.44263832068619}, {'Latitude': 43.066480708621924, 'Longitude': -73.96975463204575}, {'Latitude': 41.95211265886055, 'Longitude': -73.57988117405536}, {'Latitude': 42.22719163055777, 'Longitude': -72.07746114659037}, {'Latitude': 43.348708275316724, 'Longitude': -72.44263832068619}]}}], 'BoundingRectangles': [{'WestBoundingCoordinate': -73.96975463204575, 'SouthBoundingCoordinate': 41.95211265886055, 'EastBoundingCoordinate': -72.07746114659037, 'NorthBoundingCoordinate': 43.348708275316724}]}, 'Track': {'Cycle': 12, 'Passes': [{'Pass': 298, 'Tiles': ['078L', '079L', '080L', '081L', '078R', '079R', '080R', '081R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-03-17T08:42:48.423Z', 'BeginningDateTime': '2024-03-17T08:42:27.324Z'}}
Size(MB): 64.73935794830322
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM18T_N_x_x_x_012_298_040F_20240317T084227_20240317T084248_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'BoundingRectangles': [{'WestBoundingCoordinate': -180, 'SouthBoundingCoordinate': -90, 'EastBoundingCoordinate': 180, 'NorthBoundingCoordinate': 90}]}, 'Track': {'Cycle': 12, 'Passes': [{'Pass': 323, 'Tiles': ['274L', '275L', '276L', '277L', '274R', '275R', '276R', '277R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-03-18T06:41:42.947Z', 'BeginningDateTime': '2024-03-18T06:41:21.819Z'}}
Size(MB): 57.18547248840332
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM60W_N_x_x_x_012_323_138F_20240318T064121_20240318T064142_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'GPolygons': [{'Boundary': {'Points': [{'Latitude': 42.22719163055777, 'Longitude': -73.65832419541033}, {'Latitude': 41.95211265886055, 'Longitude': -72.15590416794534}, {'Latitude': 43.066480708621924, 'Longitude': -71.76603070995414}, {'Latitude': 43.34870827531672, 'Longitude': -73.2931470213137}, {'Latitude': 42.22719163055777, 'Longitude': -73.65832419541033}]}}], 'BoundingRectangles': [{'WestBoundingCoordinate': -73.65832419541033, 'SouthBoundingCoordinate': 41.95211265886055, 'EastBoundingCoordinate': -71.76603070995414, 'NorthBoundingCoordinate': 43.34870827531672}]}, 'Track': {'Cycle': 12, 'Passes': [{'Pass': 341, 'Tiles': ['228L', '229L', '230L', '231L', '228R', '229R', '230R', '231R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-03-18T22:00:05.417Z', 'BeginningDateTime': '2024-03-18T21:59:44.318Z'}}
Size(MB): 60.76976490020752
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM18T_N_x_x_x_012_341_115F_20240318T215944_20240318T220005_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'GPolygons': [{'Boundary': {'Points': [{'Latitude': 43.34870827531672, 'Longitude': -71.20976162168664}, {'Latitude': 43.066480708621924, 'Longitude': -72.7368779330462}, {'Latitude': 41.95211265886055, 'Longitude': -72.3470044750558}, {'Latitude': 42.22719163055777, 'Longitude': -70.84458444759079}, {'Latitude': 43.34870827531672, 'Longitude': -71.20976162168664}]}}], 'BoundingRectangles': [{'WestBoundingCoordinate': -72.7368779330462, 'SouthBoundingCoordinate': 41.95211265886055, 'EastBoundingCoordinate': -70.84458444759079, 'NorthBoundingCoordinate': 43.34870827531672}]}, 'Track': {'Cycle': 12, 'Passes': [{'Pass': 576, 'Tiles': ['078L', '079L', '080L', '081L', '078R', '079R', '080R', '081R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-03-27T07:05:05.812Z', 'BeginningDateTime': '2024-03-27T07:04:44.714Z'}}
Size(MB): 84.17818546295166
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM19T_N_x_x_x_012_576_040F_20240327T070444_20240327T070505_PGD0_01.nc'], Collection: {'Version': 'D', 'ShortName': 'SWOT_L2_HR_Raster_100m_D'}
Spatial coverage: {'HorizontalSpatialDomain': {'Geometry': {'GPolygons': [{'Boundary': {'Points': [{'Latitude': 42.22719163055778, 'Longitude': -72.42544746840993}, {'Latitude': 41.952112658860564, 'Longitude': -70.92302744094494}, {'Latitude': 43.06648070862194, 'Longitude': -70.53315398295408}, {'Latitude': 43.348708275316724, 'Longitude': -72.06027029431364}, {'Latitude': 42.22719163055778, 'Longitude': -72.42544746840993}]}}], 'BoundingRectangles': [{'WestBoundingCoordinate': -72.42544746840993, 'SouthBoundingCoordinate': 41.952112658860564, 'EastBoundingCoordinate': -70.53315398295408, 'NorthBoundingCoordinate': 43.348708275316724}]}, 'Track': {'Cycle': 13, 'Passes': [{'Pass': 35, 'Tiles': ['228L', '229L', '230L', '231L', '228R', '229R', '230R', '231R']}]}}}
Temporal coverage: {'RangeDateTime': {'EndingDateTime': '2024-03-28T20:22:22.554Z', 'BeginningDateTime': '2024-03-28T20:22:01.450Z'}}
Size(MB): 93.36454772949219
Data: ['https://archive.swot.podaac.earthdata.nasa.gov/podaac-swot-ops-cumulus-protected/SWOT_L2_HR_Raster_D/SWOT_L2_HR_Raster_100m_UTM19T_N_x_x_x_013_035_115F_20240328T202201_20240328T202222_PGD0_01.nc']]

Select a single file for visualization

Open file using xarray

ds_raster = xr.open_mfdataset(earthaccess.open([raster_results[1]]), engine='h5netcdf')
ds_raster
<xarray.Dataset> Size: 622MB
Dimensions:                  (y: 1782, x: 1782)
Coordinates:
  * y                        (y) float64 14kB 7.584e+06 7.584e+06 ... 7.762e+06
  * x                        (x) float64 14kB 4.485e+05 4.486e+05 ... 6.266e+05
Data variables: (12/39)
    crs                      object 8B ...
    longitude                (y, x) float64 25MB dask.array<chunksize=(594, 594), meta=np.ndarray>
    latitude                 (y, x) float64 25MB dask.array<chunksize=(594, 594), meta=np.ndarray>
    wse                      (y, x) float32 13MB dask.array<chunksize=(891, 891), meta=np.ndarray>
    wse_qual                 (y, x) float32 13MB dask.array<chunksize=(1782, 1782), meta=np.ndarray>
    wse_qual_bitwise         (y, x) float64 25MB dask.array<chunksize=(891, 891), meta=np.ndarray>
    ...                       ...
    load_tide_fes            (y, x) float32 13MB dask.array<chunksize=(891, 891), meta=np.ndarray>
    load_tide_got            (y, x) float32 13MB dask.array<chunksize=(891, 891), meta=np.ndarray>
    pole_tide                (y, x) float32 13MB dask.array<chunksize=(891, 891), meta=np.ndarray>
    model_dry_tropo_cor      (y, x) float32 13MB dask.array<chunksize=(891, 891), meta=np.ndarray>
    model_wet_tropo_cor      (y, x) float32 13MB dask.array<chunksize=(891, 891), meta=np.ndarray>
    iono_cor_gim_ka          (y, x) float32 13MB dask.array<chunksize=(891, 891), meta=np.ndarray>
Attributes: (12/49)
    Conventions:                   CF-1.7
    title:                         Level 2 KaRIn High Rate Raster Data Product
    institution:                   JPL
    source:                        Ka-band radar interferometer
    history:                       2025-11-25T14:03:21Z : Creation
    platform:                      SWOT
    ...                            ...
    utm_zone_num:                  60
    mgrs_latitude_band:            W
    x_min:                         448500.0
    x_max:                         626600.0
    y_min:                         7583700.0
    y_max:                         7761800.0

Plot raster data using custom filters to improve image quality

# Plot the data with a filter on water_frac > x, or sig0>50
ds_raster.wse.where(ds_raster.water_frac > 0.5).hvplot.image(y='y', x='x').opts(cmap='Blues', clim=(vmin,vmax), width=1000, height=750)

To continue this analysis and mask data with quality flags, see the end of this notebook.