Release v5.0.x
2025-01-27
Version description of the v5.0.6 release of SlideRule Earth.
Breaking Changes
v5.0.3 - The use of the SlideRule Provisioning System has been deprecated. All accounts in the system must be replaced by GitHub accounts. Authentication for private clusters is now handled by the SlideRule Authenticator at https://login.slideruleearth.io.
The Python client now supports only two authentication flows: (1) the use of a PAT key from GitHub, and (2) an interactive device-flow login to GitHub
Support for
.netrcfiles has been removedThe environment variable
PS_GITHUB_TOKENhas been renamed toSLIDERULE_GITHUB_TOKENto remove the “Provisioning System” prefix identifier.The
ps_usernameandps_passwordparameters insliderule.authenticatehave been removed.The
update_available_serversfunction can no longer be used to change the number of nodes in a running cluster; it can only be used to initialize the number of nodes in a cluster that is to be deployed and then status the number of nodes that are running.
v5.0.3 - The use of the SlideRule Manager has been deprecated. All calls to
session.managershould no longer be used as that functionality will cease in future releases.v5.0.3 - The main Python module
slideruleno longer creates a default session on import but requires eithersliderule.init()orsliderule.create_session(). The creation of a default session was confusing when users calledsliderule.init()which then created a second session. This caused odd behavior with logging because at that point two loggers exist. Moving forward, users are encouraged to usesliderule.create_session()which returns a session object that can then unambiguously be used to communicate with a SlideRule cluster..v5.0.3 - Raster sampling support has been optimized for x-series APIs at the cost of legacy p-series API performance. All users are strongly encouraged to switch to x-series APIs when performing raster sampling as the old p-series APIs will take much longer now.
v5.0.3 - Removed the
sliderule.authenticatefunction as authentication must now occur when a SlideRule session is created.v5.0.2 - Polygons used for
earthdata.stacrequests no longer need to be nested lists, but are supplied in the same format as all other requests:
poly = [
{"lat": lat1, "lon": lon1},
{"lat": lat2, "lon": lon2},
...
{"lat": lat1, "lon": lon1}
]
v5.0.2 - The
rasterfield which was replaced byregion_maskand has been deprecated is now no longer supported.v5.0.2 - The
nsidc-s3asset which was replaced by theicesat2asset, is no longer supported. Usingicesat2instead ofnsidc-s3provides identical behavior.v5.0.2 - The
bypass_dnsoption in the SlideRule Python Client is no longer supported as it was not reliable.v5.0.2 - Queries to AMS require all parameters for the query to be inside an object with the key matching the product being queried. For example, ATL13 queries can no longer provide the
refidparameter at the top level of the request json, like so:
{
"refid": 110234231
}
Instead the request json must change to be this:
{
"atl13": {
"refid": 110234231
}
}
Known Issues
v5.0.0 - The GitHub actions related to running the pytests and the selftest are currently not working. This is due to them being transitioned to the provisioning system.
New Functionality
v5.0.3 - The django-based SlideRule Provisioning System running in AWS ECS has reached end-of-life and is now replaced by the pure Python-based SlideRule Provisioner running in AWS lambda.
v5.0.3 - The authentication services provided by the SlideRule Provisioning System have been replaced by the SlideRule Authenticator which in turn uses GitHub athentication services for account management.
v5.0.3 - The flask-based SlideRule Manager has been removed. Telemetry and alert logging is now handled by the AWS firehose-based SlideRule Recorder. Rate limiting and endpoint metrics are now handled the SlideRule Intelligent Load Balancer.
v5.0.3 - #552 - Ancillary field requests now support multidimensional data.
v5.0.3 - #553 - Added x-series APIs for ATL06 (
atl06x) and ATL08 (atl08x)v5.0.3 - #562 - Serial-mode raster sampling has been removed.
v5.0.3 - #564 - Added x-series APIs for GEDI04A (
gedi04ax), GEDI02A (gedi02ax), and GEDI01B (gedi01bx)v5.0.2 - ATL24 uses release 002 by default, which uses the internal Asset Metadata Service (AMS).
v5.0.2 - #549 -
h5pnow supports slices.v5.0.2 -
earthdata.pyis no longer a standalone implementation of an interface to CMR and TNM, but instead makes a request to the SlideRule cluster to execute the server-side implementations inearth_data_query.lua. This consolidates the interface to these services in one place, and also provides a consistent interface between the web and Python clients.v5.0.2 - Added the
3dep1masset which accesses the same USGS 3DEP data product but uses the internal AMS service for STAC queries. This is an attempt to alleviate issues with inconsistent availability and functionality in The National Map (TNM) service which made using 3DEP difficult.
Issues Resolved
v5.0.5 - 1fd0f03 - fixed defaults for
atl06xandatl08xv5.0.5 - e2c7cc8 - project bucket passed through to cluster (fixed issue of netrc file not being found)
v5.0.5 - 0b1f32c - provisioner check for org membership fixed (in addition to any checks related to a JWT claim that is a json array)
v5.0.5 - e8011fc - GitHub PAT key permissions reduced to minimal set
v5.0.5 - e65e01f - “org role” header passed to requests to be used by
aceandexecreas opposed to using “is public”v5.0.5 - 3a77550 - added ability to select non-nan values when pulling only a single value from a raster
v5.0.5 - Cluster has the correct permissions to allow firehose posts
v5.0.3 - #557 - Optimized raster batch sampling
v5.0.2 - The latest SlideRule Conda-Forge package is now correctly installed when using the most updated conda resolver.
v5.0.2 - 6a71ca6 -
atl03spendpoint throttled to prevent users from making large AOI requests and taking down servers.v5.0.2 - fec547f - LAS/LAZ output will now open automatically in the Python client when
open_on_completeis set to True.v5.0.2 - Rate limiting improved - error messages displayed in web client and python client; admin capabilities added for resetting rate limiting
Development Updates
v5.0.3 - 069269b - Cloudformation owns public cluster dns
v5.0.3 - defb7a1 - Docker compose files are now embedded in the cloudformation configuration files for the cluster.
v5.0.3 - 27214b4 - ASAN suppression removed with upgrade to PDAL
v5.0.3 - Removed the
ORGANIZATIONenvironment variable and System Configuration setting. It has been replaced by the use of theCLUSTERenvironment variable and setting.v5.0.3 - Removed the configuration json file and made all startup parameters environment variables.
v5.0.3 - AreaOfInterest class consolidated across ICESat-2 and GEDI
v5.0.2 - #545 - Substantial static analysis was performed on all packages using codex and issues were resolved.
v5.0.2 - Runtime Exceptions (RTE) codes updated and reorganized to support the web client being able to provide meaningful feedback to user when an error occurs.
v5.0.2 - ed8c58f -
free_funcremoved frommsgqdesignv5.0.2 - 57cbcd5 - S3 puts provide better error messages in backend logs
v5.0.2 - Docker containers are now all standardized on using AL2023 as the base image unless an alternative is required (e.g. ilb)
v5.0.2 - e982826 - The base AMI used for all cluter nodes is not the AL2023 ECS optimized image provided by AWS.
Getting This Release
https://github.com/SlideRuleEarth/sliderule/releases/tag/v5.0.6
Metrics
clients/python/utils/benchmark.py
atl06_aoi <766208 x 16> - 29.947413 secs
atl06_ancillary <916 x 17> - 2.865666 secs
atl03_ancillary <916 x 17> - 2.525880 secs
atl06_parquet <1600 x 18> - 2.707429 secs
atl03_parquet <23072 x 23> - 1.626420 secs
atl06_sample_landsat <916 x 20> - 58.570350 secs
atl06_sample_zonal_arcticdem <1695 x 27> - 4.856738 secs
atl06_sample_nn_arcticdem <1695 x 20> - 4.646599 secs
atl06_msample_nn_arcticdem <1695 x 20> - 4.546073 secs
atl06_no_sample_arcticdem <1695 x 16> - 2.524935 secs
atl03_rasterized_subset <51832 x 22> - 2.428944 secs
atl03_polygon_subset <50615 x 22> - 2.160177 secs
clients/python/utils/baseline.py
GEDI / 3DEP = 2653.7247077111642
ICESat-2 / ArcticDEM = 1598.2301327720206
ICESat-2 / ATL06p = 1809.893690173468
ICESat-2 / PhoREAL = 3.245903730392456