{"id":64165,"name":"captoolkit","description":"NASA's Cryosphere Altimetry Processing Toolkit.","url":"https://github.com/nasa-jpl/captoolkit","last_synced_at":"2026-04-07T21:00:23.585Z","repository":{"id":44372198,"uuid":"104787010","full_name":"nasa-jpl/captoolkit","owner":"nasa-jpl","description":"NASA’s Cryosphere Altimetry Processing Toolkit","archived":false,"fork":false,"pushed_at":"2025-09-09T07:02:19.000Z","size":14255,"stargazers_count":76,"open_issues_count":0,"forks_count":27,"subscribers_count":17,"default_branch":"master","last_synced_at":"2026-04-05T20:02:24.646Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nasa-jpl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-09-25T18:31:15.000Z","updated_at":"2026-04-03T12:05:48.000Z","dependencies_parsed_at":"2023-02-08T08:16:13.652Z","dependency_job_id":"b6936d5d-0bc9-41db-a240-2a34c8b2cc3c","html_url":"https://github.com/nasa-jpl/captoolkit","commit_stats":{"total_commits":403,"total_committers":7,"mean_commits":57.57142857142857,"dds":"0.18858560794044665","last_synced_commit":"017e682e7e79d9ed3787ca0994a1eb94435595ba"},"previous_names":["fspaolo/captoolkit"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/nasa-jpl/captoolkit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nasa-jpl%2Fcaptoolkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nasa-jpl%2Fcaptoolkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nasa-jpl%2Fcaptoolkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nasa-jpl%2Fcaptoolkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nasa-jpl","download_url":"https://codeload.github.com/nasa-jpl/captoolkit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nasa-jpl%2Fcaptoolkit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31528751,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"nasa-jpl","name":"NASA Jet Propulsion Laboratory","uuid":"10360932","kind":"organization","description":"A world leader in the robotic exploration of space","email":"github@jpl.nasa.gov","website":"https://www.jpl.nasa.gov","location":"Pasadena, California, US","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/10360932?v=4","repositories_count":36,"last_synced_at":"2023-02-27T18:40:37.011Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/nasa-jpl","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-11T01:23:55.645Z","updated_at":"2023-02-27T18:40:37.022Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nasa-jpl","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nasa-jpl/repositories"},"packages":[],"commits":{"id":1254328,"full_name":"nasa-jpl/captoolkit","default_branch":"master","total_commits":404,"total_committers":8,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":50.5,"dds":0.19059405940594054,"past_year_total_commits":1,"past_year_total_committers":1,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":1.0,"past_year_dds":0.0,"last_synced_at":"2026-04-05T20:00:56.884Z","last_synced_commit":"2176f3ef346ba8db70f31a6d3a9f83b2a80dd297","created_at":"2023-03-27T11:32:12.404Z","updated_at":"2026-04-05T20:00:40.979Z","committers":[{"name":"fspaolo","email":"fspaolo@gmail.com","login":"fspaolo","count":327},{"name":"Johan Nilsson","email":"31837913+nilssonj","login":"nilssonj","count":36},{"name":"Johan Nilsson","email":"nilssonj@caltech.edu","login":null,"count":26},{"name":"tsutterley","email":"tsutterl@uw.edu","login":"tsutterley","count":5},{"name":"Alex Gardner","email":"alex.s.gardner@jpl.nasa.gov","login":"alex-s-gardner","count":4},{"name":"nilssonj","email":"you@example.com","login":"invalid-email-address","count":4},{"name":"xin luo","email":"xinluo_xin@163.com","login":"xinluo2018","count":1},{"name":"Johan Nilsson","email":"nilssonj8403@gmail.com","login":"nilssonj84","count":1}],"past_year_committers":[{"name":"Johan Nilsson","email":"nilssonj8403@gmail.com","login":"nilssonj84","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/nasa-jpl%2Fcaptoolkit/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-07T00:00:11.408Z","repositories_count":6211674,"commits_count":917977971,"contributors_count":35578298,"owners_count":1142787,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"nasa-jpl/captoolkit","html_url":"https://github.com/nasa-jpl/captoolkit","last_synced_at":"2026-03-09T07:00:38.533Z","status":"error","issues_count":0,"pull_requests_count":5,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":1963361.2,"issues_closed_count":0,"pull_requests_closed_count":5,"pull_request_authors_count":2,"issue_authors_count":0,"avg_comments_per_issue":null,"avg_comments_per_pull_request":1.2,"merged_pull_requests_count":5,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"created_at":"2023-05-09T10:38:09.851Z","updated_at":"2026-03-09T07:00:38.533Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/nasa-jpl%2Fcaptoolkit","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/nasa-jpl%2Fcaptoolkit/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{},"pull_request_author_associations_count":{"CONTRIBUTOR":5},"issue_authors":{},"pull_request_authors":{"tsutterley":4,"xinluo2018":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-07T00:00:09.463Z","repositories_count":14130498,"issues_count":34522432,"pull_requests_count":112752536,"authors_count":11229186,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{},"past_year_issue_authors":{},"past_year_pull_request_authors":{},"maintainers":[],"active_maintainers":[]},"events":{"total":{"MemberEvent":1,"ForkEvent":1,"WatchEvent":7},"last_year":{"MemberEvent":1,"ForkEvent":1,"WatchEvent":2}},"keywords":[],"dependencies":[{"ecosystem":"conda","filepath":"environment.yml","sha":null,"kind":"manifest","created_at":"2022-08-30T13:43:04.575Z","updated_at":"2022-08-30T13:43:04.575Z","repository_link":"https://github.com/nasa-jpl/captoolkit/blob/master/environment.yml","dependencies":[{"id":3307882868,"package_name":"astropy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":3307882869,"package_name":"ecmwf-api-client","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":3307882870,"package_name":"flake8","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":3307882871,"package_name":"gdal","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":3307882872,"package_name":"h5py","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":3307882873,"package_name":"matplotlib","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":3307882874,"package_name":"netcdf4","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":3307882875,"package_name":"notebook","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":3307882876,"package_name":"numpy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":3307882877,"package_name":"pandas","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":3307882878,"package_name":"pip","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":3307882879,"package_name":"pyproj","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":3307882880,"package_name":"pytables","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":3307882881,"package_name":"python","ecosystem":"conda","requirements":"\u003e=3.6","direct":true,"kind":"runtime","optional":false},{"id":3307882882,"package_name":"scikit-learn","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":3307882883,"package_name":"scipy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":3307882884,"package_name":"seaborn","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":3307882885,"package_name":"statsmodels","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":3307882886,"package_name":"xarray","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"doc/requirements.txt","sha":null,"kind":"manifest","created_at":"2022-08-30T13:43:04.669Z","updated_at":"2022-08-30T13:43:04.669Z","repository_link":"https://github.com/nasa-jpl/captoolkit/blob/master/doc/requirements.txt","dependencies":[{"id":3307883763,"package_name":"sphinx","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":3307883764,"package_name":"recommonmark","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":3307883765,"package_name":"sphinx_markdown_tables","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"requirements.txt","sha":null,"kind":"manifest","created_at":"2022-08-30T13:43:04.861Z","updated_at":"2022-08-30T13:43:04.861Z","repository_link":"https://github.com/nasa-jpl/captoolkit/blob/master/requirements.txt","dependencies":[{"id":3307884249,"package_name":"numpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":3307884250,"package_name":"scipy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":3307884251,"package_name":"pyproj","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":3307884252,"package_name":"matplotlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":3307884253,"package_name":"seaborn","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":3307884254,"package_name":"pandas","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":3307884255,"package_name":"h5py","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":3307884256,"package_name":"netCDF4","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":3307884257,"package_name":"gdal","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":3307884258,"package_name":"xarray","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":3307884259,"package_name":"tables","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":3307884260,"package_name":"astropy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":3307884261,"package_name":"scikit-learn","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":3307884262,"package_name":"statsmodels","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":3307884263,"package_name":"ecmwf-api-client","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/python-publish.yml","sha":null,"kind":"manifest","created_at":"2023-02-08T08:16:13.527Z","updated_at":"2023-02-08T08:16:13.527Z","repository_link":"https://github.com/nasa-jpl/captoolkit/blob/master/.github/workflows/python-publish.yml","dependencies":[{"id":7445265422,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7445265423,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/python-request.yml","sha":null,"kind":"manifest","created_at":"2023-02-08T08:16:13.557Z","updated_at":"2023-02-08T08:16:13.557Z","repository_link":"https://github.com/nasa-jpl/captoolkit/blob/master/.github/workflows/python-request.yml","dependencies":[{"id":7445265424,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7445265425,"package_name":"goanpeca/setup-miniconda","ecosystem":"actions","requirements":"v1.6.0","direct":true,"kind":"composite","optional":false}]}],"score":6.410174881966167,"created_at":"2023-09-18T12:26:47.770Z","updated_at":"2026-04-07T21:00:23.598Z","avatar_url":"https://github.com/nasa-jpl.png","language":"Jupyter Notebook","category":"Cryosphere","sub_category":"Glacier and Ice Sheets","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"![splash](splash.png)\n\n# `captoolkit` - Cryosphere Altimetry Processing Toolkit\n\n[![Language](https://img.shields.io/badge/python-3.6%2B-blue.svg)](https://www.python.org/)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/fspaolo/captoolkit/blob/master/LICENSE)\n[![Documentation Status](https://readthedocs.org/projects/captoolkit/badge/?version=latest)](https://captoolkit.readthedocs.io/en/latest/?badge=latest)\n[![DOI](https://zenodo.org/badge/104787010.svg)](https://zenodo.org/badge/latestdoi/104787010)\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/fspaolo/captoolkit/master)  \n\n\n#### Set of tools for processing and integrating satellite and airborne (radar and laser) altimetry data.\n\n## Project leads\n\n* [Johan Nilsson](https://www.uu.se/en/contact-and-organisation/staff?query=N24-683) (johan.n.nilsson@geo.uu.se)\n* [Fernando Paolo](https://fpaolo.com) (fspaolo@gmail.com)\n* [Alex Gardner](https://science.jpl.nasa.gov/people/AGardner/) (alex.s.gardner@jpl.nasa.gov)\n\nJet Propulsion Laboratory, California Institute of Technology\n\nDevelopment of the codebase was funded by the NASA Cryospheric Sciences program and the NASA MEaSUReS ITS_LIVE project through award to Alex Gardner.\n\n## Contributors\n\n- Tyler Sutterley (tsutterl@uw.edu)\n\n## Contribution\n\nIf you would like to contribute (your own code or modifications to existing ones) just create a [pull request](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request) or send us an email, we will gladly add you as a contributor to the project.\n\n## Install\n\n    git clone https://github.com/fspaolo/captoolkit.git\n    cd captoolkit\n    python setup.py install\n\n## Example\n\nRead ICESat-2 Land Ice Height product (ATL06) in parallel and extract some variables using 4 cores (from the command line):\n\n    readatl06.py -n 4 *.h5\n\nTo see the input arguments of each program run:\n\n    program.py -h\n\nFor more information check the header of each program.\n\n## Full example using ICESat-2 data to understand usage\n- First read ATL06 data using **readatl06.py**.\n- Merge all the files using **merge.py** (A or D, or all of them).\n- Tile the data to speed up processing using **tile.py**.\n- Run **fitsec.py** to get dh/dt using the tiles (in parallel use \"-n\"); provide input as \"./tiles/*.h5\".\n- Merge all the output tiles into one file again using **joinsec.py**\n\n## Notebooks\n\n[Introduction to HDF5 data files](https://nbviewer.jupyter.org/github/fspaolo/captoolkit/blob/master/notebooks/intro-to-hdf5.ipynb)   \nHigh-level overview of the HDF5 file structure and associated tools\n\n[Reduction of ICESat-2 data files](https://nbviewer.jupyter.org/github/fspaolo/captoolkit/blob/master/notebooks/redu-is2-files.ipynb)  \nSelect (ATL06) files and variables of interest and write to a simpler structure\n\n[Filtering and gridding elevation change data](https://nbviewer.jupyter.org/github/fspaolo/captoolkit/blob/master/notebooks/Gridding-rendered.ipynb)  \nInterpolate and filter data to derive gridded products of elevation change\n\n## Notes\n\nThis package is under heavy development, and new tools are being added as we finish testing them (many more utilities are coming).\n\nCurrently, 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:\n\n    python program.py -a arg1 -b arg2 /path/to/files/*.h5\n\n## Tools\n\n### Reading\n\n* [`readgeo.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/readgeo.md) - Read Geosat and apply/remove corrections\n* [`readers.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/readers.md) - Read ERS 1/2 (REAPER) and apply/remove corrections\n* [`readra2.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/readra2.md) - Read Envisat and apply/remove corrections\n* [`readgla12.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/readgla12.md) - Read ICESat GLA12 Release 634 HDF5 and apply/remove corrections\n* [`readgla06.py`](https://github.com/nasa-jpl/captoolkit/blob/master/doc/source/user_guide/readgla06.md) - Read ICESat GLA12 Release 634 HDF5 and apply/remove corrections\n* [`readatl06.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/readatl06.md) - Read ICESat-2 ATL06 HDF5 and select specific variables\n\n### Correcting\n\n* [`corrapply.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/corrapply.md) - Apply a set of specified corrections to a set of variables\n* [`corrslope.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/corrslope.md) - Correct slope-induced errors using 'direct' or 'relocation' method\n* [`corrscatt.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/corrscatt.md) - Correct radar altimetry height to correlation with waveform parameters\n* [`corrlaser.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/corrlaser.md) - Compute and apply corrections for ICESat Laser 2 and 3\n\n### Filtering\n\n* [`filtst.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/filtst.md) - Filter point-cloud data in space and time\n* [`filtmask.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/filtmask.md) - Select scattered data using raster-mask, polygon or bounding box\n* [`filtnan.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/filtnan.md) - Check for NaNs in a given 1D variable and remove the respective \"rows\"\n* [`filttrack.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/filttrack.md) - Filter satellite tracks (segments) with along-track running window\n* [`filttrackwf.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/filttrackwf.md) - Filter waveform tracks (segments) with along-track running window\n\n### Differencing\n\n* [`xing.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/xing.md) - Compute differences between two adjacent points (cal/val)\n* [`xover.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/xover.md) - Compute crossover values at satellite orbit intersections\n\n### Fitting\n\n* [`fittopo.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/fittopo.md) - Detrend data with respect to modeled topography\n* [`fitsec.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/fitsec.md) - Compute robust height changes using a surface-fit approach\n\n### Interpolating\n\n* [`interpgaus.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/interpgaus.md) - Interpolate irregular data using Gaussian Kernel\n* [`interpmed.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/interpmed.md) - Interpolate irregular data using a Median Kernel\n* [`interpkrig.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/interpkrig.md) - Interpolate irregular data using Kriging/Collocation\n\n### Gaussian Processes\n\n* [`ointerp/ointerp.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/ointerp/ointerp.md) - Optimal Interpolation/Gaussian Processes\n* [`ointerp/covx.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/ointerp/covx.md) - Calculate empirical spatial covariances from data\n* [`ointerp/covt.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/ointerp/covt.md) - Calculate empirical temporal covariances from data\n* [`ointerp/covfit.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/ointerp/covfit.md) - Fit analytical model to empirical covariances\n\n### IBE\n\n* [`ibe/corribe.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/ibe/corribe.md) - Compute and apply inverse barometer correction (IBE)\n* [`ibe/slp2ibe.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/ibe/slp2ibe.md) - Convert ERA-Interim Sea-level pressure to IBE\n* [`ibe/geteraint.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/ibe/geteraint.md) - Example python params to download ERA-Interim\n\n### Tides\n\n* [`tide/corrtide.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/tide/corrtide.md) - Compute and apply ocean and load tides corrections\n* [`tide/calc_astrol_longitudes.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/tide/calc_astrol_longitudes.md) - Computes the basic astronomical mean longitudes\n* [`tide/calc_delta_time.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/tide/calc_delta_time.md) - Calculates difference between universal and dynamic time\n* [`tide/convert_xy_ll.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/tide/convert_xy_ll.md) - Convert lat/lon points to and from projected coordinates\n* [`tide/infer_minor_corrections.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/tide/infer_minor_corrections.md) - Return corrections for 16 minor constituents\n* [`tide/load_constituent.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/tide/load_constituent.md) - Loads parameters for a given tidal constituent\n* [`tide/load_nodal_corrections.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/tide/load_nodal_corrections.md) - Load the nodal corrections for tidal constituents\n* [`tide/predict_tide_drift.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/tide/predict_tide_drift.md) - Predict tidal elevations using harmonic constants\n* [`tide/read_tide_model.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/tide/read_tide_model.md) - Extract tidal harmonic constants from OTIS tide models\n* [`tide/read_netcdf_model.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/tide/read_netcdf_model.md) - Extract tidal harmonic constants from netcdf models\n* [`tide/read_GOT_model.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/tide/read_GOT_model.md) - Extract tidal harmonic constants from GSFC GOT models\n\n### 2D Fields\n\n* [`gettopo.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/gettopo.md) - Estimate slope, aspect and curvature from given DEM\n* [`getdem.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/getdem.md) - Regrid mean height field (DEM) from grid-1 onto grid-2\n* [`getmsl.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/getmsl.md) - Calculate and extend MSL field for the ice shelves\n* [`getveloc.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/getveloc.md) - Combine best 2D mean field from different velocities\n* [`vregrid.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/vregrid.md) - Regrid velocity field onto height field\n* [`vmerge.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/vmerge.md) - Merge multiple velocity fields, e.g. Gardner et al. + Rignot et al.\n* [`mkmask.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/mkmask.md) - Compute ice shelf, basin and buffer raster masks\n\n### 3D Fields\n\n* [`cubefilt.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/cubefilt.md) - Filter slices (spatial) and individual time series (temporal)\n* [`cubefilt2.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/cubefilt2.md) - Filter time series residuals w.r.t. a piece-wise poly fit\n* [`cubexcal.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/cubexcal.md) - Cross-calibrate several data cubes with same dimensions\n* [`cubeimau.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/cubeimau.md) - Filter and regrid IMAU Firn cube product\n* [`cubegsfc.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/cubegsfc.md) - Filter and regrid GSFC Firn cube product\n* [`cubegemb.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/cubegemb.md) - Filter and regrid JPL Firn and SMB cube products\n* [`cubesmb.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/cubesmb.md) - Filter and regrid RACMO and ERA5 SMB cube products\n* [`cubethick.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/cubethick.md) - Compute time-variable Freeboard, Draft, and Thickness\n* [`cubediv.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/cubediv.md) - Compute time-variable Flux Divergence, and associated products\n* [`cubemelt.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/cubemelt.md) - Compute time-variable basal melt rates and mass change\n* [`cuberegrid.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/cuberegrid.md) - Remove spatial artifacts and regrid 3D fields\n* [`cubeerror.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/cubeerror.md) - Estimate and propagate cube uncertainties\n\n### Utilities\n\n* [`split.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/split.md) - Split large 1D HDF5 file(s) into smaller ones\n* [`merge.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/merge.md) - Merge several HDF5 files into a single or multiple file(s)\n* [`mergetile.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/mergetile.md) - Merge tiles from different missions keeping the original grid\n* [`tile.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/tile.md) - Tile geographical (point) data to allow parallelization\n* [`join.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/join.md) - Join a set of geographical tiles (from individual files)\n* [`joingrd.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/joingrd.md) - Join a set of geographical tiles (subgrids from individual files)\n* [`stackgrd.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/stackgrd.md) - Stack a set of 2D grids into a 3D cube using time information\n* [`sort.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/sort.md) - Sort (in place) all 1D variables in HDF5 file(s)\n* [`dummy.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/dummy.md) - Add dummy variables as 1D arrays to HDF5 files(s)\n* [`hdf2txt.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/hdf2txt.md) - Convert HDF5 (1D arrays) to ASCII tables (columns)\n* [`txt2hdf.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/txt2hdf.md) - Convert (very large) ASCII tables to HDF5 (1D arrays)\n* [`query.py`](https://github.com/fspaolo/captoolkit/blob/master/doc/source/user_guide/query.md) - Query entire data base (tens of thousands of HDF5 files)\n\n### Scripts\n\n* `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.\n\n### Data\n\n* `data/` - The data folder contains example data files for some of the tools. See respective headers.\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["glaciers"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/64165","html_url":"https://ost.ecosyste.ms/projects/64165"}