pysolid


Namepysolid JSON
Version 0.3.2 PyPI version JSON
download
home_pagehttps://github.com/insarlab/PySolid
SummaryA Python wrapper for solid to compute solid Earth tides
upload_time2023-12-01 06:40:43
maintainer
docs_urlNone
authorZhang Yunjun, Dennis Milbert
requires_python>=3.8
licenseGPL-3.0-or-later
keywords solid eartth tides deformation geodesy geophysics
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![Language](https://img.shields.io/badge/python-3.8%2B-blue.svg?style=flat-square)](https://www.python.org/)
[![CircleCI](https://img.shields.io/circleci/build/github/insarlab/PySolid.svg?logo=circleci&label=tests&style=flat-square)](https://circleci.com/gh/insarlab/PySolid)
[![Conda Download](https://img.shields.io/conda/dn/conda-forge/pysolid?color=green&label=conda%20downloads&style=flat-square)](https://anaconda.org/conda-forge/pysolid)
[![Version](https://img.shields.io/github/v/release/insarlab/PySolid?color=yellow&label=version&style=flat-square)](https://github.com/insarlab/PySolid/releases)
[![License](https://img.shields.io/badge/license-GPLv3+-blue.svg?style=flat-square)](https://github.com/insarlab/PySolid/blob/main/LICENSE)
[![Citation](https://img.shields.io/badge/doi-10.1109%2FTGRS.2022.3168509-blue?style=flat-square)](https://doi.org/10.1109/TGRS.2022.3168509)

## PySolid

The Python based solid Earth tides (PySolid) is a thin Python wrapper of the [`solid.for`](http://geodesyworld.github.io/SOFTS/solid.htm) program (by Dennis Milbert based on [_dehanttideinelMJD.f_](https://iers-conventions.obspm.fr/content/chapter7/software/dehanttideinel/) from V. Dehant, S. Mathews, J. Gipson and C. Bruyninx) to calculate [solid Earth tides](https://en.wikipedia.org/wiki/Earth_tide) in east, north and up directions (section 7.1.1 in the [2010 IERS Conventions](https://www.iers.org/IERS/EN/Publications/TechnicalNotes/tn36.html)). Solid Earth tides introduce large offsets in SAR observations and long spatial wavelength ramps in InSAR observations, as shown in the Sentinel-1 data with regular acquisitions and large swaths ([Yunjun et al., 2022](https://doi.org/10.1109/TGRS.2022.3168509)).

This is research code provided to you "as is" with NO WARRANTIES OF CORRECTNESS. Use at your own risk.

### 1. Install

PySolid is available on the [conda-forge](https://anaconda.org/conda-forge/pysolid) channel and the main archive of the [Debian](https://tracker.debian.org/pkg/pysolid) GNU/Linux OS. The released version can be install via `conda` as:

```shell
# run "conda update pysolid" to update the installed version
conda install -c conda-forge pysolid
```

or via `apt` (or other package managers) for [Debian-derivative OS](https://wiki.debian.org/Derivatives/Census) users, including [Ubuntu](https://ubuntu.com), as:

```shell
apt install python3-pysolid
```

<details>
<p><summary>Or build from source:</summary></p>

PySolid relies on a few Python modules as described in [requirements.txt](./requirements.txt) and [NumPy's f2py](https://numpy.org/doc/stable/f2py/) to build the Fortran source code. You could use `conda` to install all the dependencies, including the Fortran compiler, or use your own installed Fortran compiler and `pip` to install the rest.

##### a. Download source code

```bash
# run "cd PySolid; git pull" to update to the latest development version
git clone https://github.com/insarlab/PySolid.git
```

##### b. Install dependencies

```bash
# option 1: use conda to install dependencies into an existing, activated environment
conda install -c conda-forge fortran-compiler --file PySolid/requirements.txt --file PySolid/tests/requirements.txt

# option 2: use conda to install dependencies into a new environment, e.g. named "pysolid"
conda create --name pysolid fortran-compiler --file PySolid/requirements.txt --file PySolid/tests/requirements.txt
conda activate pysolid

# option 3: have a Fortran compiler already installed and use pip to install the rest dependencies
python -m pip install -r PySolid/requirements.txt -r PySolid/tests/requirements.txt
```

##### c. Install PySolid

```bash
# option 1: use pip to install pysolid into the current environment
python -m pip install PySolid

# option 2: use pip to install pysolid in develop mode (editable) into the current environment
# setting an environmental variable as below is required for editable installs via pyproject.toml
export SETUPTOOLS_ENABLE_FEATURES="legacy-editable"
python -m pip install -e PySolid

# option 3: manually compile the Fortran code and setup environment variable
cd PySolid/src/pysolid
f2py -c -m solid solid.for
export PYTHONPATH=${PYTHONPATH}:~/tools/PySolid
```

##### d. Test the installation

To test the installation, run the following:

```bash
python -c "import pysolid; print(pysolid.__version__)"
python PySolid/tests/grid.py
python PySolid/tests/point.py
```
</details>

### 2. Usage

PySolid could compute solid Earth tides in two modes: **point** and **grid**. Both modes produce displacement in east, north and up directions.

+   **Point mode:** compute 1D tides time-series at a specific point for a given time period
+   **Grid mode:** compute 2D tides grid at a specific time for a given spatial grid

#### 2.1 Point Mode [[notebook](./docs/plot_point_SET.ipynb)]

```python
import datetime as dt
import pysolid

# prepare inputs
lat, lon = 34.0, -118.0                 # point of interest in degree, Los Angles, CA
step_sec = 60 * 5                       # sample spacing in time domain in seconds
dt0 = dt.datetime(2020, 1, 1, 4, 0, 0)  # start date and time
dt1 = dt.datetime(2021, 1, 1, 2, 0, 0)  # end   date and time

# compute SET via pysolid
dt_out, tide_e, tide_n, tide_u = pysolid.calc_solid_earth_tides_point(
    lat, lon, dt0, dt1,
    step_sec=step_sec,
    display=False,
    verbose=False,
)

# plot the power spectral density of SET up component
pysolid.plot_power_spectral_density4tides(tide_u, sample_spacing=step_sec)
```

<p align="left">
  <img width="600" src="./docs/images/set_point_ts.png">
  <img width="600" src="./docs/images/set_point_psd.png">
</p>

#### 2.2 Grid Mode [[notebook](./docs/plot_grid_SET.ipynb)]

```python
import datetime as dt
import numpy as np
import pysolid

# prepare inputs
dt_obj = dt.datetime(2020, 12, 25, 14, 7, 44)
meta = {
    'LENGTH' : 500,                # number of rows
    'WIDTH'  : 450,                # number of columns
    'X_FIRST': -126,               # min longitude in degree (upper left corner of the upper left pixel)
    'Y_FIRST': 43,                 # max laitude   in degree (upper left corner of the upper left pixel)
    'X_STEP' :  0.000925926 * 30,  # output resolution in degree
    'Y_STEP' : -0.000925926 * 30,  # output resolution in degree
}

# compute SET via pysolid
tide_e, tide_n, tide_u = pysolid.calc_solid_earth_tides_grid(
    dt_obj, meta,
    display=False,
    verbose=True,
)

# project SET from ENU to satellite line-of-sight (LOS) direction with positive for motion towards the satellite
# inc_angle : incidence angle of the LOS vector (from ground to radar platform) measured from vertical.
# az_angle  : azimuth   angle of the LOS vector (from ground to radar platform) measured from the north, with anti-clockwirse as positive.
inc_angle = np.deg2rad(34)   # radian, typical value for Sentinel-1
az_angle = np.deg2rad(-102)  # radian, typical value for Sentinel-1 descending track
tide_los = (  tide_e * np.sin(inc_angle) * np.sin(az_angle) * -1
            + tide_n * np.sin(inc_angle) * np.cos(az_angle)
            + tide_u * np.cos(inc_angle))
```

<p align="left">
  <img width="800" src="./docs/images/set_grid.png">
</p>

### 3. Citing this work

+   Yunjun, Z., Fattahi, H., Pi, X., Rosen, P., Simons, M., Agram, P., & Aoki, Y. (2022). Range Geolocation Accuracy of C-/L-band SAR and its Implications for Operational Stack Coregistration. _IEEE Trans. Geosci. Remote Sens., 60_, 5227219. [ [doi](https://doi.org/10.1109/TGRS.2022.3168509) \| [arxiv](https://doi.org/10.31223/X5F641) \| [data](https://doi.org/10.5281/zenodo.6360749) \| [notebook](https://github.com/yunjunz/2022-Geolocation) ]
+   Milbert, D. (2018), "solid: Solid Earth Tide", [Online]. Available: http://geodesyworld.github.io/SOFTS/solid.htm. Accessd on: 2020-09-06.



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/insarlab/PySolid",
    "name": "pysolid",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "solid Eartth tides,deformation,geodesy,geophysics",
    "author": "Zhang Yunjun, Dennis Milbert",
    "author_email": "yunjunz@outlook.com",
    "download_url": "https://files.pythonhosted.org/packages/3f/f5/e582719eaa586303caf0ffc6357576a996cb64465cd222a60a42b541c3d2/pysolid-0.3.2.tar.gz",
    "platform": null,
    "description": "[![Language](https://img.shields.io/badge/python-3.8%2B-blue.svg?style=flat-square)](https://www.python.org/)\n[![CircleCI](https://img.shields.io/circleci/build/github/insarlab/PySolid.svg?logo=circleci&label=tests&style=flat-square)](https://circleci.com/gh/insarlab/PySolid)\n[![Conda Download](https://img.shields.io/conda/dn/conda-forge/pysolid?color=green&label=conda%20downloads&style=flat-square)](https://anaconda.org/conda-forge/pysolid)\n[![Version](https://img.shields.io/github/v/release/insarlab/PySolid?color=yellow&label=version&style=flat-square)](https://github.com/insarlab/PySolid/releases)\n[![License](https://img.shields.io/badge/license-GPLv3+-blue.svg?style=flat-square)](https://github.com/insarlab/PySolid/blob/main/LICENSE)\n[![Citation](https://img.shields.io/badge/doi-10.1109%2FTGRS.2022.3168509-blue?style=flat-square)](https://doi.org/10.1109/TGRS.2022.3168509)\n\n## PySolid\n\nThe Python based solid Earth tides (PySolid) is a thin Python wrapper of the [`solid.for`](http://geodesyworld.github.io/SOFTS/solid.htm) program (by Dennis Milbert based on [_dehanttideinelMJD.f_](https://iers-conventions.obspm.fr/content/chapter7/software/dehanttideinel/) from V. Dehant, S. Mathews, J. Gipson and C. Bruyninx) to calculate [solid Earth tides](https://en.wikipedia.org/wiki/Earth_tide) in east, north and up directions (section 7.1.1 in the [2010 IERS Conventions](https://www.iers.org/IERS/EN/Publications/TechnicalNotes/tn36.html)). Solid Earth tides introduce large offsets in SAR observations and long spatial wavelength ramps in InSAR observations, as shown in the Sentinel-1 data with regular acquisitions and large swaths ([Yunjun et al., 2022](https://doi.org/10.1109/TGRS.2022.3168509)).\n\nThis is research code provided to you \"as is\" with NO WARRANTIES OF CORRECTNESS. Use at your own risk.\n\n### 1. Install\n\nPySolid is available on the [conda-forge](https://anaconda.org/conda-forge/pysolid) channel and the main archive of the [Debian](https://tracker.debian.org/pkg/pysolid) GNU/Linux OS. The released version can be install via `conda` as:\n\n```shell\n# run \"conda update pysolid\" to update the installed version\nconda install -c conda-forge pysolid\n```\n\nor via `apt` (or other package managers) for [Debian-derivative OS](https://wiki.debian.org/Derivatives/Census) users, including [Ubuntu](https://ubuntu.com), as:\n\n```shell\napt install python3-pysolid\n```\n\n<details>\n<p><summary>Or build from source:</summary></p>\n\nPySolid relies on a few Python modules as described in [requirements.txt](./requirements.txt) and [NumPy's f2py](https://numpy.org/doc/stable/f2py/) to build the Fortran source code. You could use `conda` to install all the dependencies, including the Fortran compiler, or use your own installed Fortran compiler and `pip` to install the rest.\n\n##### a. Download source code\n\n```bash\n# run \"cd PySolid; git pull\" to update to the latest development version\ngit clone https://github.com/insarlab/PySolid.git\n```\n\n##### b. Install dependencies\n\n```bash\n# option 1: use conda to install dependencies into an existing, activated environment\nconda install -c conda-forge fortran-compiler --file PySolid/requirements.txt --file PySolid/tests/requirements.txt\n\n# option 2: use conda to install dependencies into a new environment, e.g. named \"pysolid\"\nconda create --name pysolid fortran-compiler --file PySolid/requirements.txt --file PySolid/tests/requirements.txt\nconda activate pysolid\n\n# option 3: have a Fortran compiler already installed and use pip to install the rest dependencies\npython -m pip install -r PySolid/requirements.txt -r PySolid/tests/requirements.txt\n```\n\n##### c. Install PySolid\n\n```bash\n# option 1: use pip to install pysolid into the current environment\npython -m pip install PySolid\n\n# option 2: use pip to install pysolid in develop mode (editable) into the current environment\n# setting an environmental variable as below is required for editable installs via pyproject.toml\nexport SETUPTOOLS_ENABLE_FEATURES=\"legacy-editable\"\npython -m pip install -e PySolid\n\n# option 3: manually compile the Fortran code and setup environment variable\ncd PySolid/src/pysolid\nf2py -c -m solid solid.for\nexport PYTHONPATH=${PYTHONPATH}:~/tools/PySolid\n```\n\n##### d. Test the installation\n\nTo test the installation, run the following:\n\n```bash\npython -c \"import pysolid; print(pysolid.__version__)\"\npython PySolid/tests/grid.py\npython PySolid/tests/point.py\n```\n</details>\n\n### 2. Usage\n\nPySolid could compute solid Earth tides in two modes: **point** and **grid**. Both modes produce displacement in east, north and up directions.\n\n+   **Point mode:** compute 1D tides time-series at a specific point for a given time period\n+   **Grid mode:** compute 2D tides grid at a specific time for a given spatial grid\n\n#### 2.1 Point Mode [[notebook](./docs/plot_point_SET.ipynb)]\n\n```python\nimport datetime as dt\nimport pysolid\n\n# prepare inputs\nlat, lon = 34.0, -118.0                 # point of interest in degree, Los Angles, CA\nstep_sec = 60 * 5                       # sample spacing in time domain in seconds\ndt0 = dt.datetime(2020, 1, 1, 4, 0, 0)  # start date and time\ndt1 = dt.datetime(2021, 1, 1, 2, 0, 0)  # end   date and time\n\n# compute SET via pysolid\ndt_out, tide_e, tide_n, tide_u = pysolid.calc_solid_earth_tides_point(\n    lat, lon, dt0, dt1,\n    step_sec=step_sec,\n    display=False,\n    verbose=False,\n)\n\n# plot the power spectral density of SET up component\npysolid.plot_power_spectral_density4tides(tide_u, sample_spacing=step_sec)\n```\n\n<p align=\"left\">\n  <img width=\"600\" src=\"./docs/images/set_point_ts.png\">\n  <img width=\"600\" src=\"./docs/images/set_point_psd.png\">\n</p>\n\n#### 2.2 Grid Mode [[notebook](./docs/plot_grid_SET.ipynb)]\n\n```python\nimport datetime as dt\nimport numpy as np\nimport pysolid\n\n# prepare inputs\ndt_obj = dt.datetime(2020, 12, 25, 14, 7, 44)\nmeta = {\n    'LENGTH' : 500,                # number of rows\n    'WIDTH'  : 450,                # number of columns\n    'X_FIRST': -126,               # min longitude in degree (upper left corner of the upper left pixel)\n    'Y_FIRST': 43,                 # max laitude   in degree (upper left corner of the upper left pixel)\n    'X_STEP' :  0.000925926 * 30,  # output resolution in degree\n    'Y_STEP' : -0.000925926 * 30,  # output resolution in degree\n}\n\n# compute SET via pysolid\ntide_e, tide_n, tide_u = pysolid.calc_solid_earth_tides_grid(\n    dt_obj, meta,\n    display=False,\n    verbose=True,\n)\n\n# project SET from ENU to satellite line-of-sight (LOS) direction with positive for motion towards the satellite\n# inc_angle : incidence angle of the LOS vector (from ground to radar platform) measured from vertical.\n# az_angle  : azimuth   angle of the LOS vector (from ground to radar platform) measured from the north, with anti-clockwirse as positive.\ninc_angle = np.deg2rad(34)   # radian, typical value for Sentinel-1\naz_angle = np.deg2rad(-102)  # radian, typical value for Sentinel-1 descending track\ntide_los = (  tide_e * np.sin(inc_angle) * np.sin(az_angle) * -1\n            + tide_n * np.sin(inc_angle) * np.cos(az_angle)\n            + tide_u * np.cos(inc_angle))\n```\n\n<p align=\"left\">\n  <img width=\"800\" src=\"./docs/images/set_grid.png\">\n</p>\n\n### 3. Citing this work\n\n+   Yunjun, Z., Fattahi, H., Pi, X., Rosen, P., Simons, M., Agram, P., & Aoki, Y. (2022). Range Geolocation Accuracy of C-/L-band SAR and its Implications for Operational Stack Coregistration. _IEEE Trans. Geosci. Remote Sens., 60_, 5227219. [ [doi](https://doi.org/10.1109/TGRS.2022.3168509) \\| [arxiv](https://doi.org/10.31223/X5F641) \\| [data](https://doi.org/10.5281/zenodo.6360749) \\| [notebook](https://github.com/yunjunz/2022-Geolocation) ]\n+   Milbert, D. (2018), \"solid: Solid Earth Tide\", [Online]. Available: http://geodesyworld.github.io/SOFTS/solid.htm. Accessd on: 2020-09-06.\n\n\n",
    "bugtrack_url": null,
    "license": "GPL-3.0-or-later",
    "summary": "A Python wrapper for solid to compute solid Earth tides",
    "version": "0.3.2",
    "project_urls": {
        "Bug Reports": "https://github.com/insarlab/PySolid/issues",
        "Homepage": "https://github.com/insarlab/PySolid",
        "Source": "https://github.com/insarlab/PySolid"
    },
    "split_keywords": [
        "solid eartth tides",
        "deformation",
        "geodesy",
        "geophysics"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2da47b1b9ccbb4c9e39bf9f63921b3717453a53f6682ec2ee89ff263c3bc90da",
                "md5": "9ca988f96b9332db4bf9cc23eb8ed9e3",
                "sha256": "5c33cea362747f9d5bbacff930549dae91220ad3bc246b69807e41625082d769"
            },
            "downloads": -1,
            "filename": "pysolid-0.3.2-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9ca988f96b9332db4bf9cc23eb8ed9e3",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 1306354,
            "upload_time": "2023-12-01T06:40:13",
            "upload_time_iso_8601": "2023-12-01T06:40:13.263055Z",
            "url": "https://files.pythonhosted.org/packages/2d/a4/7b1b9ccbb4c9e39bf9f63921b3717453a53f6682ec2ee89ff263c3bc90da/pysolid-0.3.2-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "851e371fca1bff1950a149d0d2d702e822340ef2f278aa71e52b6b1c12ed0e2c",
                "md5": "56df17150a32dcf747710de624496369",
                "sha256": "8555211832732e07d0d3d1a534382dab465d82ac249299d52712aa286aae5952"
            },
            "downloads": -1,
            "filename": "pysolid-0.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "56df17150a32dcf747710de624496369",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 1175132,
            "upload_time": "2023-12-01T06:40:15",
            "upload_time_iso_8601": "2023-12-01T06:40:15.873044Z",
            "url": "https://files.pythonhosted.org/packages/85/1e/371fca1bff1950a149d0d2d702e822340ef2f278aa71e52b6b1c12ed0e2c/pysolid-0.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "473abd120a3167e696990963930a043defab9e6ef5197c5c5831664c0c6b24af",
                "md5": "9bfef3b08eddf061bbe33101ff210d2a",
                "sha256": "a69a2171b1eed064c9e59bab1a136225b1a9b16ec8d56be1225150af3e31f794"
            },
            "downloads": -1,
            "filename": "pysolid-0.3.2-cp310-cp310-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "9bfef3b08eddf061bbe33101ff210d2a",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 972142,
            "upload_time": "2023-12-01T06:40:17",
            "upload_time_iso_8601": "2023-12-01T06:40:17.828156Z",
            "url": "https://files.pythonhosted.org/packages/47/3a/bd120a3167e696990963930a043defab9e6ef5197c5c5831664c0c6b24af/pysolid-0.3.2-cp310-cp310-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f881c226805178bfd99865e6c34aed5942c0264181ce04ade1b98bdd342cfbb3",
                "md5": "90228bf33a6add0682ca82068bd8893e",
                "sha256": "d7856d8526d8d2baca55f9d529336b9fcd0605fba799526172932ae1b0f789a5"
            },
            "downloads": -1,
            "filename": "pysolid-0.3.2-cp310-cp310-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "90228bf33a6add0682ca82068bd8893e",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 861835,
            "upload_time": "2023-12-01T06:40:19",
            "upload_time_iso_8601": "2023-12-01T06:40:19.931468Z",
            "url": "https://files.pythonhosted.org/packages/f8/81/c226805178bfd99865e6c34aed5942c0264181ce04ade1b98bdd342cfbb3/pysolid-0.3.2-cp310-cp310-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "252c22f2fde7f61e93eeaef0fa3525ea9a61ba049d3c04a90dbcd3e1f0c08c6b",
                "md5": "16761df8fdb862ee9a7a46e31c7e0f5f",
                "sha256": "bef57175ebcd25c6f9e932f9ba6aefc26e63f2f5d04aa49f5a86376a8f460ec6"
            },
            "downloads": -1,
            "filename": "pysolid-0.3.2-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "16761df8fdb862ee9a7a46e31c7e0f5f",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 1306350,
            "upload_time": "2023-12-01T06:40:21",
            "upload_time_iso_8601": "2023-12-01T06:40:21.915514Z",
            "url": "https://files.pythonhosted.org/packages/25/2c/22f2fde7f61e93eeaef0fa3525ea9a61ba049d3c04a90dbcd3e1f0c08c6b/pysolid-0.3.2-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d63acaa82b813b20604217099ee20ea74b62b0ec905f942322ede913be1be511",
                "md5": "7ed718d8eab355001ecb22ce26a1916b",
                "sha256": "1ecbb76326044608a81d01135479854042acde4493ea8ece49714965aa03e8c8"
            },
            "downloads": -1,
            "filename": "pysolid-0.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7ed718d8eab355001ecb22ce26a1916b",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 1177215,
            "upload_time": "2023-12-01T06:40:24",
            "upload_time_iso_8601": "2023-12-01T06:40:24.201203Z",
            "url": "https://files.pythonhosted.org/packages/d6/3a/caa82b813b20604217099ee20ea74b62b0ec905f942322ede913be1be511/pysolid-0.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4f01fe0824bce0a9b7bd7dc63c3d82fc446a6e49dcae741750a98792704eeafc",
                "md5": "fdfa587759dbdea7763fe8c28f0a9ce4",
                "sha256": "965f2e113e853ecf6c7e8c8873f353f3d2827958c48a4f066db850ed54e0a79e"
            },
            "downloads": -1,
            "filename": "pysolid-0.3.2-cp311-cp311-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "fdfa587759dbdea7763fe8c28f0a9ce4",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 975795,
            "upload_time": "2023-12-01T06:40:26",
            "upload_time_iso_8601": "2023-12-01T06:40:26.306839Z",
            "url": "https://files.pythonhosted.org/packages/4f/01/fe0824bce0a9b7bd7dc63c3d82fc446a6e49dcae741750a98792704eeafc/pysolid-0.3.2-cp311-cp311-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "021307505e676bd645da170e0e53f76e375d9a0b822d6c3283ea87ed2e2a5cd4",
                "md5": "ae36cdb12b02252f16ef7ac0f1a9ecfe",
                "sha256": "645d62c3fc7cd3aeefa26d53e1b0285704dfb183ef9dd634fa3d947cde09f740"
            },
            "downloads": -1,
            "filename": "pysolid-0.3.2-cp311-cp311-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ae36cdb12b02252f16ef7ac0f1a9ecfe",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 865253,
            "upload_time": "2023-12-01T06:40:28",
            "upload_time_iso_8601": "2023-12-01T06:40:28.224424Z",
            "url": "https://files.pythonhosted.org/packages/02/13/07505e676bd645da170e0e53f76e375d9a0b822d6c3283ea87ed2e2a5cd4/pysolid-0.3.2-cp311-cp311-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c593068cd26198c2c41b4b9285c1b7deb99c591afaea5a5662316a2ef9927bf0",
                "md5": "e71de84d2df1020c6b484a77b870ebed",
                "sha256": "a7a1c7d764dccf986ed2b379822be495d7786449350e7940db7fa1be5442da2c"
            },
            "downloads": -1,
            "filename": "pysolid-0.3.2-cp38-cp38-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e71de84d2df1020c6b484a77b870ebed",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 1306278,
            "upload_time": "2023-12-01T06:40:30",
            "upload_time_iso_8601": "2023-12-01T06:40:30.196110Z",
            "url": "https://files.pythonhosted.org/packages/c5/93/068cd26198c2c41b4b9285c1b7deb99c591afaea5a5662316a2ef9927bf0/pysolid-0.3.2-cp38-cp38-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dcb413acb58c67035b81ff90784cbb0acae2ed3e5342acd5aa4a85fdad68eab1",
                "md5": "acdc0df42596afd04d68f5bfa5682ded",
                "sha256": "5887e1bee48a38ecfe76cbce71da4835d90463a04d9b053eadaeaa0349ef6775"
            },
            "downloads": -1,
            "filename": "pysolid-0.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "acdc0df42596afd04d68f5bfa5682ded",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 1175264,
            "upload_time": "2023-12-01T06:40:31",
            "upload_time_iso_8601": "2023-12-01T06:40:31.521430Z",
            "url": "https://files.pythonhosted.org/packages/dc/b4/13acb58c67035b81ff90784cbb0acae2ed3e5342acd5aa4a85fdad68eab1/pysolid-0.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e42fedea40dc64b2770d647ea22f35567f3345dfaa0f2fc7025a2528db52a25d",
                "md5": "5acbcb202d861507a28e1f306afe4aed",
                "sha256": "9e48a38bb142b6068834cb05b487e011920747605eab9e26c981a92f58889f39"
            },
            "downloads": -1,
            "filename": "pysolid-0.3.2-cp38-cp38-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "5acbcb202d861507a28e1f306afe4aed",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 974120,
            "upload_time": "2023-12-01T06:40:33",
            "upload_time_iso_8601": "2023-12-01T06:40:33.402040Z",
            "url": "https://files.pythonhosted.org/packages/e4/2f/edea40dc64b2770d647ea22f35567f3345dfaa0f2fc7025a2528db52a25d/pysolid-0.3.2-cp38-cp38-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "083ff8a125247494d964ea049318a6b98533db73bb6cdee9891ce69f53228af8",
                "md5": "bd4d2c5d63d462bfd102973a6fdc12a5",
                "sha256": "e58b8ab170b465061748d98b58942e4eddb9eddae4517b36b5a1ecf37314e82d"
            },
            "downloads": -1,
            "filename": "pysolid-0.3.2-cp38-cp38-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "bd4d2c5d63d462bfd102973a6fdc12a5",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 864350,
            "upload_time": "2023-12-01T06:40:34",
            "upload_time_iso_8601": "2023-12-01T06:40:34.593369Z",
            "url": "https://files.pythonhosted.org/packages/08/3f/f8a125247494d964ea049318a6b98533db73bb6cdee9891ce69f53228af8/pysolid-0.3.2-cp38-cp38-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dd6dd7a78be54d70bd67df8be7bbfcb92ddf5dce22270cc7c97765ce9f102a92",
                "md5": "57a89c88dbc3e3029daa75a59be1af6b",
                "sha256": "11366ee5b96e01c00425c7c4cee75d215b32b8efe1b2890a70346804bef538e4"
            },
            "downloads": -1,
            "filename": "pysolid-0.3.2-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "57a89c88dbc3e3029daa75a59be1af6b",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 1306332,
            "upload_time": "2023-12-01T06:40:36",
            "upload_time_iso_8601": "2023-12-01T06:40:36.466473Z",
            "url": "https://files.pythonhosted.org/packages/dd/6d/d7a78be54d70bd67df8be7bbfcb92ddf5dce22270cc7c97765ce9f102a92/pysolid-0.3.2-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0de27b7759992386b3f3c116fa2be5c3575aaa59d018dda0a906ecf4a77ba036",
                "md5": "eb133c6c969bfdfe6097423ac958aa3e",
                "sha256": "f585f36d6ec416a9e0f11ce45df0f891d126b3875b35fe99ce8738f64572dad0"
            },
            "downloads": -1,
            "filename": "pysolid-0.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "eb133c6c969bfdfe6097423ac958aa3e",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 1173919,
            "upload_time": "2023-12-01T06:40:38",
            "upload_time_iso_8601": "2023-12-01T06:40:38.402084Z",
            "url": "https://files.pythonhosted.org/packages/0d/e2/7b7759992386b3f3c116fa2be5c3575aaa59d018dda0a906ecf4a77ba036/pysolid-0.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b4f2e609fb395e039e70bbd576f0d3b36d17c7e8d78f8b6d5fa1d70d9b31ff31",
                "md5": "c43842c9597d7431c7f61e324f158fed",
                "sha256": "aec1a869054d4c026845999c65986f4d1b15207effe2731e833baa0218a53164"
            },
            "downloads": -1,
            "filename": "pysolid-0.3.2-cp39-cp39-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "c43842c9597d7431c7f61e324f158fed",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 970084,
            "upload_time": "2023-12-01T06:40:39",
            "upload_time_iso_8601": "2023-12-01T06:40:39.695464Z",
            "url": "https://files.pythonhosted.org/packages/b4/f2/e609fb395e039e70bbd576f0d3b36d17c7e8d78f8b6d5fa1d70d9b31ff31/pysolid-0.3.2-cp39-cp39-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "04c46d0b4ad2c64b5a844d13a35fed80dfeefb65b59f0b5e8d8eff7deb5da59a",
                "md5": "918c226540d8363480627d5b23b25ca5",
                "sha256": "e1ef2c578ec9f419f0498fd9adbc22c5a79857838a0f65b4e226e5a134929782"
            },
            "downloads": -1,
            "filename": "pysolid-0.3.2-cp39-cp39-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "918c226540d8363480627d5b23b25ca5",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 860235,
            "upload_time": "2023-12-01T06:40:41",
            "upload_time_iso_8601": "2023-12-01T06:40:41.645937Z",
            "url": "https://files.pythonhosted.org/packages/04/c4/6d0b4ad2c64b5a844d13a35fed80dfeefb65b59f0b5e8d8eff7deb5da59a/pysolid-0.3.2-cp39-cp39-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3ff5e582719eaa586303caf0ffc6357576a996cb64465cd222a60a42b541c3d2",
                "md5": "b28204fe005a12cb3fe3b7c1220f3e33",
                "sha256": "93d32ce8829fb3a4065c4e638a6dbe685385b967c6324ad9e23f2d2b646d8e34"
            },
            "downloads": -1,
            "filename": "pysolid-0.3.2.tar.gz",
            "has_sig": false,
            "md5_digest": "b28204fe005a12cb3fe3b7c1220f3e33",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 1510330,
            "upload_time": "2023-12-01T06:40:43",
            "upload_time_iso_8601": "2023-12-01T06:40:43.092222Z",
            "url": "https://files.pythonhosted.org/packages/3f/f5/e582719eaa586303caf0ffc6357576a996cb64465cd222a60a42b541c3d2/pysolid-0.3.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-12-01 06:40:43",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "insarlab",
    "github_project": "PySolid",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "circle": true,
    "requirements": [],
    "lcname": "pysolid"
}
        
Elapsed time: 3.65299s