Metadata-Version: 2.4
Name: solafune-tools
Version: 0.9.2
Summary: Open tools for Solafune developers and Solafune hackers where can share developed tools in geospatial data
Author-email: Pushkar Kopparla <pushkar.kopparla@solafune.com>, Toru Mitsutake <toru.mitsutake@solafune.com>, Lanang Afkaar <afkaar.lanang@solafune.com>
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: dask<2025.4.1,>=2024.9.0
Requires-Dist: geopandas<=1.0.1
Requires-Dist: pillow<11.2.0,>=10.0.0
Requires-Dist: planetary_computer<=1.0.0
Requires-Dist: pystac<=1.12.2
Requires-Dist: pystac_client<=0.8.6
Requires-Dist: requests<=2.32.3
Requires-Dist: rioxarray<=0.18.2
Requires-Dist: stac_geoparquet<=0.6.0
Requires-Dist: stackstac<=0.5.1
Requires-Dist: shapely<=2.0.7
Requires-Dist: numpy<=1.26.4
Requires-Dist: tqdm<=4.67.1
Requires-Dist: rasterio<=1.4.3
Provides-Extra: super-resolution
Requires-Dist: torch>=2.6.0; extra == "super-resolution"
Requires-Dist: torchvision>=0.22.1; extra == "super-resolution"
Requires-Dist: torchaudio>=2.6.0; extra == "super-resolution"
Requires-Dist: opencv-python>=4.11.0.86; extra == "super-resolution"
Requires-Dist: scikit-image>=0.22.0; extra == "super-resolution"
Requires-Dist: tqdm>=4.66.1; extra == "super-resolution"
Requires-Dist: madgrad==1.3; extra == "super-resolution"
Requires-Dist: matplotlib==3.8.1; extra == "super-resolution"
Requires-Dist: timm==0.9.10; extra == "super-resolution"
Requires-Dist: torchsr==1.0.4; extra == "super-resolution"
Requires-Dist: clearml==2.0.1; extra == "super-resolution"
Requires-Dist: pandas==2.1.3; extra == "super-resolution"
Requires-Dist: pytest==7.4.3; extra == "super-resolution"
Requires-Dist: natsort==8.4.0; extra == "super-resolution"
Requires-Dist: colorama==0.4.6; extra == "super-resolution"
Requires-Dist: python-box==7.1.1; extra == "super-resolution"
Requires-Dist: scikit-learn==1.3.2; extra == "super-resolution"
Requires-Dist: albumentations==1.3.1; extra == "super-resolution"
Requires-Dist: pytorch-lightning==2.5.2; extra == "super-resolution"
Requires-Dist: beautifulsoup4==4.12.2; extra == "super-resolution"
Requires-Dist: transformers==4.36.2; extra == "super-resolution"
Requires-Dist: lion-pytorch==0.1.2; extra == "super-resolution"
Requires-Dist: streamlit==1.30.0; extra == "super-resolution"
Requires-Dist: python-multipart==0.0.7; extra == "super-resolution"
Requires-Dist: empatches==0.2.3; extra == "super-resolution"
Requires-Dist: pillow==10.3.0; extra == "super-resolution"
Requires-Dist: imagecodecs==2024.6.1; extra == "super-resolution"
Requires-Dist: numpy==1.26.4; extra == "super-resolution"
Provides-Extra: full
Requires-Dist: dask<2025.4.1,>=2024.9.0; extra == "full"
Requires-Dist: geopandas<=1.0.1; extra == "full"
Requires-Dist: pillow<11.2.0,>=10.0.0; extra == "full"
Requires-Dist: planetary_computer<=1.0.0; extra == "full"
Requires-Dist: pystac<=1.12.2; extra == "full"
Requires-Dist: pystac_client<=0.8.6; extra == "full"
Requires-Dist: requests<=2.32.3; extra == "full"
Requires-Dist: rioxarray<=0.18.2; extra == "full"
Requires-Dist: stac_geoparquet<=0.6.0; extra == "full"
Requires-Dist: stackstac<=0.5.1; extra == "full"
Requires-Dist: shapely<=2.0.7; extra == "full"
Requires-Dist: numpy<=1.26.4; extra == "full"
Requires-Dist: tqdm<=4.67.1; extra == "full"
Requires-Dist: rasterio<=1.4.3; extra == "full"
Requires-Dist: torch>=2.6.0; extra == "full"
Requires-Dist: torchvision>=0.22.1; extra == "full"
Requires-Dist: torchaudio>=2.6.0; extra == "full"
Requires-Dist: opencv-python>=4.11.0.86; extra == "full"
Requires-Dist: scikit-image>=0.22.0; extra == "full"
Requires-Dist: tqdm>=4.66.1; extra == "full"
Requires-Dist: madgrad==1.3; extra == "full"
Requires-Dist: matplotlib==3.8.1; extra == "full"
Requires-Dist: timm==0.9.10; extra == "full"
Requires-Dist: torchsr==1.0.4; extra == "full"
Requires-Dist: clearml==2.0.1; extra == "full"
Requires-Dist: pandas==2.1.3; extra == "full"
Requires-Dist: pytest==7.4.3; extra == "full"
Requires-Dist: natsort==8.4.0; extra == "full"
Requires-Dist: colorama==0.4.6; extra == "full"
Requires-Dist: python-box==7.1.1; extra == "full"
Requires-Dist: scikit-learn==1.3.2; extra == "full"
Requires-Dist: albumentations==1.3.1; extra == "full"
Requires-Dist: pytorch-lightning==2.5.2; extra == "full"
Requires-Dist: beautifulsoup4==4.12.2; extra == "full"
Requires-Dist: transformers==4.36.2; extra == "full"
Requires-Dist: lion-pytorch==0.1.2; extra == "full"
Requires-Dist: streamlit==1.30.0; extra == "full"
Requires-Dist: python-multipart==0.0.7; extra == "full"
Requires-Dist: empatches==0.2.3; extra == "full"
Requires-Dist: pillow==10.3.0; extra == "full"
Requires-Dist: imagecodecs==2024.6.1; extra == "full"
Requires-Dist: numpy==1.26.4; extra == "full"
Dynamic: license-file

<h1 align="center">
<img src="https://solafune-contents.s3.ap-northeast-1.amazonaws.com/Solafune+Tools+Logo.png" width="300">
</h1><br>

<div align="center">
  
![Python](https://img.shields.io/badge/Python-%3E%3D3.10-blue?logo=python&logoColor=white)
![Latest Release](https://img.shields.io/github/v/release/solafune-inc/solafune-tools?color=brightgreen&logo=tag&logoColor=white)
![GitHub stars](https://img.shields.io/github/stars/Solafune-Inc/solafune-tools?style=social)

</div>

## Solafune-Tools: Open library for Solafune developers and hackers where you can share tools for geospatial data

This library package is an integrated open-source tool for Solafune developers, Solafune hackers, scientists, engineers, students, and anyone interested in geospatial data analysis. The solafune-tools contain many tools to help you develop your analysis like downloading STAC catalogs and Sentinel-2 imagery (from Planetary Computer) and then assembling it into a cloudless mosaic, competition_tools, community_tools, and other tools in geospatial data analysis. Other tools also will be added in the future.

### July 2025: Added 5x Super-Resolution from the competition!

## Quickstart

Install the package using `pip` or `uv pip`, recommend using `python >= 3.10`:

```bash
uv pip install solafune_tools
```

You can also install the add-on requirements, like our 5x Super Resolution model from the competition.

```bash
uv pip install solafune_tools[super_resolution]
```
Or to install all the add-ons, you can also do this
```bash
uv pip install solafune_tools[full]
```

All public-facing functions have detailed docstrings explaining their expected inputs and outputs. You can check any of them through `print(solafune_tools.function_name.__doc__)` (if you don't use print it shows as an unstructured string) or `??solafune_tools.function_name` in the Jupyter notebooks.
Before using the library, you can set the directory where you want to store data by calling.

```python
solafune_tools.set_data_directory(dir_path="your_data_dir_here")
```

The above command sets the environment variable `solafune_tools_data_dir` from where all sub-modules draw their file paths. It is not set persistently (i.e., not written to `.bashrc` or similar), so you will need to put it each time you ssh into your machine or on reboot. If you do not explicitly set this, it will default to creating/using a `data` folder within your current working directory.

## Documentation

Refer to this [link](docs/README.md) for further information on each tool contained in this repository.

## Contributions

Thank you for your interest in contributing to **solafune-tools**! This project is dedicated to building powerful, open-source tools for geospatial data analysis, aiming to facilitate tasks like data processing, visualization, and spatial analysis. Contributions from the community are invaluable for improving and expanding this project, and we welcome your input!

### Credits

For those who have contributed to this OSS, We are grateful for your contribution to this development of geospatial tools. In this section, we will add a table to show users who have contributed and the users' contributed functions, stay tuned!
| Contributor | Function Developed      |
|-------------|-------------------------|
| user1       | PQS_function            |
| user2       | panoptic_metric         |
| user3       | normalization           |
