captoolkit
NASA's Cryosphere Altimetry Processing Toolkit.
https://github.com/nasa-jpl/captoolkit
Category: Cryosphere
Sub Category: Glacier and Ice Sheets
Last synced: about 19 hours ago
JSON representation
Repository metadata
NASA’s Cryosphere Altimetry Processing Toolkit
- Host: GitHub
- URL: https://github.com/nasa-jpl/captoolkit
- Owner: nasa-jpl
- License: apache-2.0
- Created: 2017-09-25T18:31:15.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-04-23T23:20:54.000Z (about 1 year ago)
- Last Synced: 2025-04-25T13:03:46.325Z (3 days ago)
- Language: Jupyter Notebook
- Homepage:
- Size: 13.6 MB
- Stars: 66
- Watchers: 18
- Forks: 24
- Open Issues: 0
- Releases: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
README.md
captoolkit
- Cryosphere Altimetry Processing Toolkit
Set of tools for processing and integrating satellite and airborne (radar and laser) altimetry data.
Project leads
- Fernando Paolo ([email protected])
- Johan Nilsson ([email protected])
- Alex Gardner ([email protected])
Jet Propulsion Laboratory, California Institute of Technology
Development of the codebase was funded by the NASA Cryospheric Sciences program and the NASA MEaSUReS ITS_LIVE project through award to Alex Gardner.
Contributors
- Tyler Sutterley ([email protected])
Contribution
If you would like to contribute (your own code or modifications to existing ones) just create a pull request or send us an email, we will gladly add you as a contributor to the project.
Install
git clone https://github.com/fspaolo/captoolkit.git
cd captoolkit
python setup.py install
Example
Read ICESat-2 Land Ice Height product (ATL06) in parallel and extract some variables using 4 cores (from the command line):
readatl06.py -n 4 *.h5
To see the input arguments of each program run:
program.py -h
For more information check the header of each program.
Full example using ICESat-2 data to understand usage
- First read ATL06 data using readatl06.py.
- Merge all the files using merge.py (A or D, or all of them).
- Tile the data to speed up processing using tile.py.
- Run fitsec.py to get dh/dt using the tiles (in parallel use "-n"); provide input as "./tiles/*.h5".
- Merge all the output tiles into one file again using joinsec.py
Notebooks
Introduction to HDF5 data files
High-level overview of the HDF5 file structure and associated tools
Reduction of ICESat-2 data files
Select (ATL06) files and variables of interest and write to a simpler structure
Filtering and gridding elevation change data
Interpolate and filter data to derive gridded products of elevation change
Notes
This package is under heavy development, and new tools are being added as we finish testing them (many more utilities are coming).
Currently, the individual programs work as standalone command-line utilities or editable scripts. There is no need to install the package. You can simply run the python scripts as:
python program.py -a arg1 -b arg2 /path/to/files/*.h5
Tools
Reading
readgeo.py
- Read Geosat and apply/remove correctionsreaders.py
- Read ERS 1/2 (REAPER) and apply/remove correctionsreadra2.py
- Read Envisat and apply/remove correctionsreadgla12.py
- Read ICESat GLA12 Release 634 HDF5 and apply/remove correctionsreadgla06.py
- Read ICESat GLA12 Release 634 HDF5 and apply/remove correctionsreadatl06.py
- Read ICESat-2 ATL06 HDF5 and select specific variables
Correcting
corrapply.py
- Apply a set of specified corrections to a set of variablescorrslope.py
- Correct slope-induced errors using 'direct' or 'relocation' methodcorrscatt.py
- Correct radar altimetry height to correlation with waveform parameterscorrlaser.py
- Compute and apply corrections for ICESat Laser 2 and 3
Filtering
filtst.py
- Filter point-cloud data in space and timefiltmask.py
- Select scattered data using raster-mask, polygon or bounding boxfiltnan.py
- Check for NaNs in a given 1D variable and remove the respective "rows"filttrack.py
- Filter satellite tracks (segments) with along-track running windowfilttrackwf.py
- Filter waveform tracks (segments) with along-track running window
Differencing
xing.py
- Compute differences between two adjacent points (cal/val)xover.py
- Compute crossover values at satellite orbit intersections
Fitting
fittopo.py
- Detrend data with respect to modeled topographyfitsec.py
- Compute robust height changes using a surface-fit approach
Interpolating
interpgaus.py
- Interpolate irregular data using Gaussian Kernelinterpmed.py
- Interpolate irregular data using a Median Kernelinterpkrig.py
- Interpolate irregular data using Kriging/Collocation
Gaussian Processes
ointerp/ointerp.py
- Optimal Interpolation/Gaussian Processesointerp/covx.py
- Calculate empirical spatial covariances from dataointerp/covt.py
- Calculate empirical temporal covariances from dataointerp/covfit.py
- Fit analytical model to empirical covariances
IBE
ibe/corribe.py
- Compute and apply inverse barometer correction (IBE)ibe/slp2ibe.py
- Convert ERA-Interim Sea-level pressure to IBEibe/geteraint.py
- Example python params to download ERA-Interim
Tides
tide/corrtide.py
- Compute and apply ocean and load tides correctionstide/calc_astrol_longitudes.py
- Computes the basic astronomical mean longitudestide/calc_delta_time.py
- Calculates difference between universal and dynamic timetide/convert_xy_ll.py
- Convert lat/lon points to and from projected coordinatestide/infer_minor_corrections.py
- Return corrections for 16 minor constituentstide/load_constituent.py
- Loads parameters for a given tidal constituenttide/load_nodal_corrections.py
- Load the nodal corrections for tidal constituentstide/predict_tide_drift.py
- Predict tidal elevations using harmonic constantstide/read_tide_model.py
- Extract tidal harmonic constants from OTIS tide modelstide/read_netcdf_model.py
- Extract tidal harmonic constants from netcdf modelstide/read_GOT_model.py
- Extract tidal harmonic constants from GSFC GOT models
2D Fields
gettopo.py
- Estimate slope, aspect and curvature from given DEMgetdem.py
- Regrid mean height field (DEM) from grid-1 onto grid-2getmsl.py
- Calculate and extend MSL field for the ice shelvesgetveloc.py
- Combine best 2D mean field from different velocitiesvregrid.py
- Regrid velocity field onto height fieldvmerge.py
- Merge multiple velocity fields, e.g. Gardner et al. + Rignot et al.mkmask.py
- Compute ice shelf, basin and buffer raster masks
3D Fields
cubefilt.py
- Filter slices (spatial) and individual time series (temporal)cubefilt2.py
- Filter time series residuals w.r.t. a piece-wise poly fitcubexcal.py
- Cross-calibrate several data cubes with same dimensionscubeimau.py
- Filter and regrid IMAU Firn cube productcubegsfc.py
- Filter and regrid GSFC Firn cube productcubegemb.py
- Filter and regrid JPL Firn and SMB cube productscubesmb.py
- Filter and regrid RACMO and ERA5 SMB cube productscubethick.py
- Compute time-variable Freeboard, Draft, and Thicknesscubediv.py
- Compute time-variable Flux Divergence, and associated productscubemelt.py
- Compute time-variable basal melt rates and mass changecuberegrid.py
- Remove spatial artifacts and regrid 3D fieldscubeerror.py
- Estimate and propagate cube uncertainties
Utilities
split.py
- Split large 1D HDF5 file(s) into smaller onesmerge.py
- Merge several HDF5 files into a single or multiple file(s)mergetile.py
- Merge tiles from different missions keeping the original gridtile.py
- Tile geographical (point) data to allow parallelizationjoin.py
- Join a set of geographical tiles (from individual files)joingrd.py
- Join a set of geographical tiles (subgrids from individual files)stackgrd.py
- Stack a set of 2D grids into a 3D cube using time informationsort.py
- Sort (in place) all 1D variables in HDF5 file(s)dummy.py
- Add dummy variables as 1D arrays to HDF5 files(s)hdf2txt.py
- Convert HDF5 (1D arrays) to ASCII tables (columns)txt2hdf.py
- Convert (very large) ASCII tables to HDF5 (1D arrays)query.py
- Query entire data base (tens of thousands of HDF5 files)
Scripts
scripts/
- This folder contains supporting code (generic and specific) that we have used in our analyses. We provide these scripts as is in case you find them useful.
Data
data/
- The data folder contains example data files for some of the tools. See respective headers.
Owner metadata
- Name: NASA Jet Propulsion Laboratory
- Login: nasa-jpl
- Email: [email protected]
- Kind: organization
- Description: A world leader in the robotic exploration of space
- Website: https://www.jpl.nasa.gov
- Location: Pasadena, California, US
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/10360932?v=4
- Repositories: 36
- Last ynced at: 2023-02-27T18:40:37.011Z
- Profile URL: https://github.com/nasa-jpl
GitHub Events
Total
- Watch event: 5
Last Year
- Watch event: 5
Committers metadata
Last synced: 8 days ago
Total Commits: 403
Total Committers: 7
Avg Commits per committer: 57.571
Development Distribution Score (DDS): 0.189
Commits in past year: 11
Committers in past year: 1
Avg Commits per committer in past year: 11.0
Development Distribution Score (DDS) in past year: 0.0
Name | Commits | |
---|---|---|
fspaolo | f****o@g****m | 327 |
Johan Nilsson | 3****j | 36 |
Johan Nilsson | n****j@c****u | 26 |
tsutterley | t****l@u****u | 5 |
Alex Gardner | a****r@j****v | 4 |
nilssonj | y****u@e****m | 4 |
xin luo | x****n@1****m | 1 |
Committer domains:
- 163.com: 1
- jpl.nasa.gov: 1
- uw.edu: 1
- caltech.edu: 1
Issue and Pull Request metadata
Last synced: 2 days ago
Total issues: 0
Total pull requests: 5
Average time to close issues: N/A
Average time to close pull requests: 23 days
Total issue authors: 0
Total pull request authors: 2
Average comments per issue: 0
Average comments per pull request: 1.2
Merged pull request: 5
Bot issues: 0
Bot pull requests: 0
Past year issues: 0
Past year pull requests: 0
Past year average time to close issues: N/A
Past year average time to close pull requests: N/A
Past year issue authors: 0
Past year pull request authors: 0
Past year average comments per issue: 0
Past year average comments per pull request: 0
Past year merged pull request: 0
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
Top Pull Request Authors
- tsutterley (4)
- xinluo2018 (1)
Top Issue Labels
Top Pull Request Labels
Dependencies
- astropy
- ecmwf-api-client
- flake8
- gdal
- h5py
- matplotlib
- netcdf4
- notebook
- numpy
- pandas
- pip
- pyproj
- pytables
- python >=3.6
- scikit-learn
- scipy
- seaborn
- statsmodels
- xarray
- recommonmark *
- sphinx *
- sphinx_markdown_tables *
- astropy *
- ecmwf-api-client *
- gdal *
- h5py *
- matplotlib *
- netCDF4 *
- numpy *
- pandas *
- pyproj *
- scikit-learn *
- scipy *
- seaborn *
- statsmodels *
- tables *
- xarray *
- actions/checkout v2 composite
- actions/setup-python v2 composite
- actions/checkout v2 composite
- goanpeca/setup-miniconda v1.6.0 composite
Score: 6.135564891081739