pyshbundle


Namepyshbundle JSON
Version 0.2 PyPI version JSON
download
home_pagehttps://github.com/mn5hk/pyshbundle
SummaryPySHbundle: A Python implementation of MATLAB codes SHbundle
upload_time2024-01-20 14:58:19
maintainer
docs_urlNone
authorAmin Shakya
requires_python>=3.7
licenseGNU General Public License v3
keywords pyshbundle
VCS
bugtrack_url
requirements pip bump2version wheel watchdog flake8 tox coverage Sphinx twine grip numpy pandas netCDF4 scipy xarray julian scipy geopandas matplotlib rasterio shapely tqdm cartopy ipykernel jupyterlab rioxarray salem
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # PySHbundle: A Python implementation of MATLAB codes SHbundle <br>

![](https://visitor-badge.glitch.me/badge?page_id=mn5hk.mat2py) <br>


PySHBundle is the python implementation of the popular SHBundle toolbox originally written using MATLAB. 

TODO: Badges and and banner for the project


## Usage

1. Read and Load level-2 spherical harmonic data
2. Create basin time series for TWS
3. Perform grace data driven correction
4. Plot spherical harmonic related plots

## 1. How to install <br>
### 1.1 For Users
Currently the package is not yet finalized hence the version on PyPI is outdated and should not be used (as of now). Please follow the steps mentioned in the following section till things are finalized. <br>

### 1.2 Till things get finalized

1.  Fork the pyshbundle repo on GitHub.

2.  Clone your fork locally:

    ```shell
    $ git clone git@github.com:your_name_here/pyshbundle.git
    ```

3.  Create a new virtual environment or conda environment to install all the necessary dependencies. using `conda` is recommended along with `jupyter lab`. Use of python 3.x is recommended

    ```shell
    $ conda create -n pyshbundle-env
    $ conda activate pyshbundle-env
    $ conda install -c conda-forge --file requirements_dev.txt -y
    ```
4. Note that the base path to the entire repo is important while importing (this is tempoary only, after PyPi module gets updated this approach will not be required) 
   ```
   Example base repo path -> ../open_source/pyshbundle

   pyshbundle (base container repo)
    | - pyshbundle (codes and functions reside here)
        | - all the codes
    | - notebooks
    | - docs
    | - and rest of the other folders
   ```

5. In order to use any of the functions change the current directory to the pyshbundle (base repo) then use import as usual
   ```python
   import os
   os.chdir(../open_source/pyshbundle)

   import pyshbundle
   # or import individual functions
   from pyshbundle import read_jpl
   ```
   after importing the fucntions this way you are all good to go.


## Read the Docs

Please find the docs here - [PySHBundle](https://abhimhamane.github.io/pyshbundle/)


## Contributing

Contributions are welcome, and they are greatly appreciated! Every
little bit helps, and credit will always be given.

You can contribute in many ways:

## Types of Contributions

### Report Bugs

Report bugs at [GitHub Issues](https://github.com/mn5hk/pyshbundle/issues)


If you are reporting a bug, please include:

-   Your operating system name and version.
-   Any details about your local setup that might be helpful in troubleshooting.
-   Detailed steps to reproduce the bug.

### Fix Bugs

Look through the GitHub issues for bugs. Anything tagged with `bug` and
`help wanted` is open to whoever wants to implement it.

### Implement Features

Look through the GitHub issues for features. Anything tagged with
`enhancement` and `help wanted` is open to whoever wants to implement it.

### Write Documentation

pyshbundle could always use more documentation,
whether as part of the official pyshbundle docs,
in docstrings, or even on the web in blog posts, articles, and such.

### Submit Feedback

The best way to send feedback is to file an issue at
[GitHub Issues](https://github.com/mn5hk/pyshbundle/issues)

If you are proposing a feature:

-   Explain in detail how it would work.
-   Keep the scope as narrow as possible, to make it easier to implement.
-   Remember that this is a volunteer-driven project, and that contributions are welcome :)

## Known Issues

1. New implementation of reading data has some bug. It works for CSR but not properly properly for JPL and ITSG sources. For more information check the current issues.
2. There is some inconsistency related to importing functions it is recommended to always use `import pyshbundle` along with any of the targeted imports you want.


## License Statement

This file is part of PySHbundle. <br>
    PySHbundle is free software: you can redistribute it and/or modify<br>
    it under the terms of the GNU General Public License as published by<br>
    the Free Software Foundation, either version 3 of the License, or<br>
    (at your option) any later version.<br>
<br>
    This program is distributed in the hope that it will be useful,<br>
    but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the<br>
    GNU General Public License for more details.<br>
<br>
    You should have received a copy of the GNU General Public License<br>
    along with this program.  If not, see <http://www.gnu.org/licenses/>.<br>
    

## Acknowledgement:
Please note that PySHbundle has adapted the following code packages,both licensed under GNU General Public License

  1. SHbundle: https://www.gis.uni-stuttgart.de/en/research/downloads/shbundle/ 
  2. Downscaling GRACE Total Water Storage Change using Partial Least Squares Regression: https://springernature.figshare.com/collections/downscaling_GRACE_Total_Water_Storage_Change_using_Partial_Least_Squares_Regression/5054564 


## Key Papers Referred:
 1. Vishwakarma, B. D., Horwath, M., Devaraju, B., Groh, A., & Sneeuw, N. (2017). 
    A data‐driven approach for repairing the hydrological catchment signal damage 
    due to filtering of GRACE products. Water Resources Research, 
    53(11), 9824-9844. https://doi.org/10.1002/2017WR021150 

 2. Vishwakarma, B. D., Zhang, J., & Sneeuw, N. (2021). 
    Downscaling GRACE total water storage change using 
    partial least squares regression. Scientific data, 8(1), 95.
    https://doi.org/10.1038/s41597-021-00862-6 
    

## How to Cite?
TODO: Add citing info







## Follow the Research Group

<a href="https://ultra-pluto-7f6d1.netlify.app" rel="Geodesy for Earth system science (GESS) research Group at ICWaR, IISc">![Geodesy for Earth system science (GESS) research Group at ICWaR, IISc](../notebooks/imgs/logoGESS.jpg)</a>

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/mn5hk/pyshbundle",
    "name": "pyshbundle",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "pyshbundle",
    "author": "Amin Shakya",
    "author_email": "aminshk50@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/2f/e8/1cd4a93498795f2f5e286ca6a336c763dc1eb8d7c6670012af4854b6dcc9/pyshbundle-0.2.tar.gz",
    "platform": null,
    "description": "# PySHbundle: A Python implementation of MATLAB codes SHbundle <br>\n\n![](https://visitor-badge.glitch.me/badge?page_id=mn5hk.mat2py) <br>\n\n\nPySHBundle is the python implementation of the popular SHBundle toolbox originally written using MATLAB. \n\nTODO: Badges and and banner for the project\n\n\n## Usage\n\n1. Read and Load level-2 spherical harmonic data\n2. Create basin time series for TWS\n3. Perform grace data driven correction\n4. Plot spherical harmonic related plots\n\n## 1. How to install <br>\n### 1.1 For Users\nCurrently the package is not yet finalized hence the version on PyPI is outdated and should not be used (as of now). Please follow the steps mentioned in the following section till things are finalized. <br>\n\n### 1.2 Till things get finalized\n\n1.  Fork the pyshbundle repo on GitHub.\n\n2.  Clone your fork locally:\n\n    ```shell\n    $ git clone git@github.com:your_name_here/pyshbundle.git\n    ```\n\n3.  Create a new virtual environment or conda environment to install all the necessary dependencies. using `conda` is recommended along with `jupyter lab`. Use of python 3.x is recommended\n\n    ```shell\n    $ conda create -n pyshbundle-env\n    $ conda activate pyshbundle-env\n    $ conda install -c conda-forge --file requirements_dev.txt -y\n    ```\n4. Note that the base path to the entire repo is important while importing (this is tempoary only, after PyPi module gets updated this approach will not be required) \n   ```\n   Example base repo path -> ../open_source/pyshbundle\n\n   pyshbundle (base container repo)\n    | - pyshbundle (codes and functions reside here)\n        | - all the codes\n    | - notebooks\n    | - docs\n    | - and rest of the other folders\n   ```\n\n5. In order to use any of the functions change the current directory to the pyshbundle (base repo) then use import as usual\n   ```python\n   import os\n   os.chdir(../open_source/pyshbundle)\n\n   import pyshbundle\n   # or import individual functions\n   from pyshbundle import read_jpl\n   ```\n   after importing the fucntions this way you are all good to go.\n\n\n## Read the Docs\n\nPlease find the docs here - [PySHBundle](https://abhimhamane.github.io/pyshbundle/)\n\n\n## Contributing\n\nContributions are welcome, and they are greatly appreciated! Every\nlittle bit helps, and credit will always be given.\n\nYou can contribute in many ways:\n\n## Types of Contributions\n\n### Report Bugs\n\nReport bugs at [GitHub Issues](https://github.com/mn5hk/pyshbundle/issues)\n\n\nIf you are reporting a bug, please include:\n\n-   Your operating system name and version.\n-   Any details about your local setup that might be helpful in troubleshooting.\n-   Detailed steps to reproduce the bug.\n\n### Fix Bugs\n\nLook through the GitHub issues for bugs. Anything tagged with `bug` and\n`help wanted` is open to whoever wants to implement it.\n\n### Implement Features\n\nLook through the GitHub issues for features. Anything tagged with\n`enhancement` and `help wanted` is open to whoever wants to implement it.\n\n### Write Documentation\n\npyshbundle could always use more documentation,\nwhether as part of the official pyshbundle docs,\nin docstrings, or even on the web in blog posts, articles, and such.\n\n### Submit Feedback\n\nThe best way to send feedback is to file an issue at\n[GitHub Issues](https://github.com/mn5hk/pyshbundle/issues)\n\nIf you are proposing a feature:\n\n-   Explain in detail how it would work.\n-   Keep the scope as narrow as possible, to make it easier to implement.\n-   Remember that this is a volunteer-driven project, and that contributions are welcome :)\n\n## Known Issues\n\n1. New implementation of reading data has some bug. It works for CSR but not properly properly for JPL and ITSG sources. For more information check the current issues.\n2. There is some inconsistency related to importing functions it is recommended to always use `import pyshbundle` along with any of the targeted imports you want.\n\n\n## License Statement\n\nThis file is part of PySHbundle. <br>\n    PySHbundle is free software: you can redistribute it and/or modify<br>\n    it under the terms of the GNU General Public License as published by<br>\n    the Free Software Foundation, either version 3 of the License, or<br>\n    (at your option) any later version.<br>\n<br>\n    This program is distributed in the hope that it will be useful,<br>\n    but WITHOUT ANY WARRANTY; without even the implied warranty of<br>\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the<br>\n    GNU General Public License for more details.<br>\n<br>\n    You should have received a copy of the GNU General Public License<br>\n    along with this program.  If not, see <http://www.gnu.org/licenses/>.<br>\n    \n\n## Acknowledgement:\nPlease note that PySHbundle has adapted the following code packages,both licensed under GNU General Public License\n\n  1. SHbundle: https://www.gis.uni-stuttgart.de/en/research/downloads/shbundle/ \n  2. Downscaling GRACE Total Water Storage Change using Partial Least Squares Regression: https://springernature.figshare.com/collections/downscaling_GRACE_Total_Water_Storage_Change_using_Partial_Least_Squares_Regression/5054564 \n\n\n## Key Papers Referred:\n 1. Vishwakarma, B. D., Horwath, M., Devaraju, B., Groh, A., & Sneeuw, N. (2017). \n    A data\u2010driven approach for repairing the hydrological catchment signal damage \n    due to filtering of GRACE products. Water Resources Research, \n    53(11), 9824-9844. https://doi.org/10.1002/2017WR021150 \n\n 2. Vishwakarma, B. D., Zhang, J., & Sneeuw, N. (2021). \n    Downscaling GRACE total water storage change using \n    partial least squares regression. Scientific data, 8(1), 95.\n    https://doi.org/10.1038/s41597-021-00862-6 \n    \n\n## How to Cite?\nTODO: Add citing info\n\n\n\n\n\n\n\n## Follow the Research Group\n\n<a href=\"https://ultra-pluto-7f6d1.netlify.app\" rel=\"Geodesy for Earth system science (GESS) research Group at ICWaR, IISc\">![Geodesy for Earth system science (GESS) research Group at ICWaR, IISc](../notebooks/imgs/logoGESS.jpg)</a>\n",
    "bugtrack_url": null,
    "license": "GNU General Public License v3",
    "summary": "PySHbundle: A Python implementation of MATLAB codes SHbundle",
    "version": "0.2",
    "project_urls": {
        "Homepage": "https://github.com/mn5hk/pyshbundle"
    },
    "split_keywords": [
        "pyshbundle"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2fe81cd4a93498795f2f5e286ca6a336c763dc1eb8d7c6670012af4854b6dcc9",
                "md5": "83c0cdd3faf68e1e73c0cab25d81fd42",
                "sha256": "fab138ce43bad292ed3ac3573b6629f372811b38f354607bf336b217dc05fd3c"
            },
            "downloads": -1,
            "filename": "pyshbundle-0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "83c0cdd3faf68e1e73c0cab25d81fd42",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 54244,
            "upload_time": "2024-01-20T14:58:19",
            "upload_time_iso_8601": "2024-01-20T14:58:19.280240Z",
            "url": "https://files.pythonhosted.org/packages/2f/e8/1cd4a93498795f2f5e286ca6a336c763dc1eb8d7c6670012af4854b6dcc9/pyshbundle-0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-20 14:58:19",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "mn5hk",
    "github_project": "pyshbundle",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "pip",
            "specs": []
        },
        {
            "name": "bump2version",
            "specs": []
        },
        {
            "name": "wheel",
            "specs": []
        },
        {
            "name": "watchdog",
            "specs": []
        },
        {
            "name": "flake8",
            "specs": []
        },
        {
            "name": "tox",
            "specs": []
        },
        {
            "name": "coverage",
            "specs": []
        },
        {
            "name": "Sphinx",
            "specs": []
        },
        {
            "name": "twine",
            "specs": []
        },
        {
            "name": "grip",
            "specs": []
        },
        {
            "name": "numpy",
            "specs": []
        },
        {
            "name": "pandas",
            "specs": []
        },
        {
            "name": "netCDF4",
            "specs": []
        },
        {
            "name": "scipy",
            "specs": []
        },
        {
            "name": "xarray",
            "specs": []
        },
        {
            "name": "julian",
            "specs": []
        },
        {
            "name": "scipy",
            "specs": []
        },
        {
            "name": "geopandas",
            "specs": []
        },
        {
            "name": "matplotlib",
            "specs": []
        },
        {
            "name": "rasterio",
            "specs": []
        },
        {
            "name": "shapely",
            "specs": []
        },
        {
            "name": "tqdm",
            "specs": []
        },
        {
            "name": "cartopy",
            "specs": []
        },
        {
            "name": "ipykernel",
            "specs": []
        },
        {
            "name": "jupyterlab",
            "specs": []
        },
        {
            "name": "rioxarray",
            "specs": []
        },
        {
            "name": "salem",
            "specs": []
        }
    ],
    "lcname": "pyshbundle"
}
        
Elapsed time: 0.22766s