# SatViz
SatSim source code was developed under contract with AFRL/RDSM, and is approved for public release under Public Affairs release approval #AFRL-2022-1116.
The SatSimJS widget for Jupyter and Marimo.

## Installation
```sh
pip install satviz
```
or with [uv](https://github.com/astral-sh/uv):
```sh
uv add satviz
```
## Usage
Jupyter
```python
from satviz import SatSimJS
w = SatSimJS(height="1000px")
w
```
Marimo
```python
import marimo as mo
from satviz import SatSimJS
widget = SatSimJS(height="900px")
w = mo.ui.anywidget(widget)
w
```
### Configuring fullscreen rectangle
Reserve space for headers/footers by customizing the overlay fullscreen rectangle from Python. Values can be numbers (pixels) or CSS strings.
```python
from satviz import SatSimJS
w = SatSimJS(
    height="600px",                      # height when not fullscreen
    fullscreen_rect={
        "top": 64,                       # e.g., top banner height
        "left": 0,
        "width": "100vw",                # or e.g., "100vw"
        "height": "calc(100vh - 96px)",  # subtract top+bottom banners
        "zIndex": 10000,                 # optional overlay stacking order
    },
)
w
```
## Release
To build and publish a release to PyPI:
1. Bump `version` in `pyproject.toml`.
2. Build and validate locally:
   ```sh
   uv pip install --upgrade build twine
   uv run python -m build
   uv run twine check dist/*
   ```
3. Publish:
   - Manual: `twine upload dist/*` (requires a `__token__` PyPI API token)
            
         
        Raw data
        
            {
    "_id": null,
    "home_page": null,
    "name": "satviz",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "anywidget, cesium, jupyter, marimo, satellite, visualization",
    "author": "Alex Cabello",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/e1/44/e5bcb57fcdaa10447e6f32c5b8300f5f01e9b2b1c95a808ae1e31f6517a2/satviz-0.3.0.tar.gz",
    "platform": null,
    "description": "# SatViz\n\nSatSim source code was developed under contract with AFRL/RDSM, and is approved for public release under Public Affairs release approval #AFRL-2022-1116.\n\nThe SatSimJS widget for Jupyter and Marimo.\n\n\n\n## Installation\n\n```sh\npip install satviz\n```\n\nor with [uv](https://github.com/astral-sh/uv):\n\n```sh\nuv add satviz\n```\n\n## Usage\n\nJupyter\n\n```python\nfrom satviz import SatSimJS\nw = SatSimJS(height=\"1000px\")\nw\n```\n\nMarimo\n\n```python\nimport marimo as mo\nfrom satviz import SatSimJS\n\nwidget = SatSimJS(height=\"900px\")\nw = mo.ui.anywidget(widget)\nw\n```\n\n### Configuring fullscreen rectangle\n\nReserve space for headers/footers by customizing the overlay fullscreen rectangle from Python. Values can be numbers (pixels) or CSS strings.\n\n```python\nfrom satviz import SatSimJS\n\nw = SatSimJS(\n    height=\"600px\",                      # height when not fullscreen\n    fullscreen_rect={\n        \"top\": 64,                       # e.g., top banner height\n        \"left\": 0,\n        \"width\": \"100vw\",                # or e.g., \"100vw\"\n        \"height\": \"calc(100vh - 96px)\",  # subtract top+bottom banners\n        \"zIndex\": 10000,                 # optional overlay stacking order\n    },\n)\nw\n```\n\n## Release\n\nTo build and publish a release to PyPI:\n\n1. Bump `version` in `pyproject.toml`.\n2. Build and validate locally:\n\n   ```sh\n   uv pip install --upgrade build twine\n   uv run python -m build\n   uv run twine check dist/*\n   ```\n\n3. Publish:\n\n   - Manual: `twine upload dist/*` (requires a `__token__` PyPI API token)\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "SatSimJS widget for Jupyter and Marimo (Cesium-based)",
    "version": "0.3.0",
    "project_urls": {
        "Homepage": "https://github.com/ssc-ai/satviz",
        "Issues": "https://github.com/ssc-ai/satviz/issues",
        "Repository": "https://github.com/ssc-ai/satviz"
    },
    "split_keywords": [
        "anywidget",
        " cesium",
        " jupyter",
        " marimo",
        " satellite",
        " visualization"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d1f7db6f494e72ff1a62917333065a6e4c96e3520981237d910f42a9612ad7a3",
                "md5": "960f2fc8417fadc8cd555a3cd5bb08e0",
                "sha256": "25211f06f74938fedb5e7d19bee704ca8a96e3a383dd7763e44ff8cd2ea1ba64"
            },
            "downloads": -1,
            "filename": "satviz-0.3.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "960f2fc8417fadc8cd555a3cd5bb08e0",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 7672,
            "upload_time": "2025-09-12T21:48:23",
            "upload_time_iso_8601": "2025-09-12T21:48:23.324518Z",
            "url": "https://files.pythonhosted.org/packages/d1/f7/db6f494e72ff1a62917333065a6e4c96e3520981237d910f42a9612ad7a3/satviz-0.3.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e144e5bcb57fcdaa10447e6f32c5b8300f5f01e9b2b1c95a808ae1e31f6517a2",
                "md5": "c58ac4a7b0ade59cfae54f4750bfe2f3",
                "sha256": "d6ab39771fa90314b68a14eefd6e3d0b66dce375c2e12cdb8d1118222a4eebad"
            },
            "downloads": -1,
            "filename": "satviz-0.3.0.tar.gz",
            "has_sig": false,
            "md5_digest": "c58ac4a7b0ade59cfae54f4750bfe2f3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 7010,
            "upload_time": "2025-09-12T21:48:24",
            "upload_time_iso_8601": "2025-09-12T21:48:24.504659Z",
            "url": "https://files.pythonhosted.org/packages/e1/44/e5bcb57fcdaa10447e6f32c5b8300f5f01e9b2b1c95a808ae1e31f6517a2/satviz-0.3.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-12 21:48:24",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ssc-ai",
    "github_project": "satviz",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "satviz"
}