Geospatial analysis environment.
Project description
Spatial Analysis Environment
This repo abstracts the basics of a spatial analysis environment, so it can be used consistently across microservices.
A slightly weird thing right now:
- We want to use conda for installation, because it helps manage a lot of the dependencies (GDAL)
- But we can't use conda for publishing, because the path to get on conda-forge seems like a pain and we haven't prioritized it. Eventually we'll use pixi, but pixi build is still in development.
- So we're using
uvto publish, and that introduces some dependency mismatches. We can see what those are with thecreate-mismatch-reporttarget. So far they have been minor.
Environments
The environments directory contains the base environment and any other environments that are needed.
The base environment is the core dependencies for all later tooling and environments.
The analysis environment is used for later tooling that is specific to analysis (like RasterOps and VectorOps).
The jupyter environment is used for the Jupyter notebook and includes RasterOps and VectorOps.
The pmtiles environment is used for the PMTiles tooling.
Usage
Adding a new dependency
When adding a new dependency to the project:
- Add the package to
environments/base/base.yml:
dependencies:
- new-package>=1.0.0
- Add the same package to
pyproject.toml:
dependencies = [
"new-package>=1.0.0",
]
- Update the lock files:
make lock
-
Review the mismatch report at
version_info/mismatch_report.txtto ensure version alignment between conda and uv -
Test the environment:
make test-conda
Note: Package names might differ slightly between conda and pip (e.g., memory_profiler vs memory-profiler). Check both repositories if you encounter installation issues.
Publishing
The package can be published to PyPI using the following workflow:
# First build the publisher container
make publisher-base
# Create a new lock file if dependencies have changed
make lock
# Publish to PyPI (requires UV_PUBLISH_TOKEN in .env.publish)
make publish
Note: Before publishing, ensure you have created a .env.publish file with your PyPI token:
UV_PUBLISH_TOKEN=your_token_here
Deploying a Jupyter Notebook to Nautilus
Prerequisites
- Install
helm(On MacOSX):
brew install helm
See https://helm.sh/docs/intro/install/ for other systems.
- Configure AWS credentials:
Create a file named
.env.s3with your Nautilus Cept S3 credentials:
AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key
AWS_ENDPOINT_URL=your_endpoint_url
Deployment
Create a deployment with a pod, ingress, and persistent volume unique to you:
make jupyter-deploy
Release resources when you're done:
make jupyter-teardown
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file geospatial_analysis_environment-0.1.11.tar.gz.
File metadata
- Download URL: geospatial_analysis_environment-0.1.11.tar.gz
- Upload date:
- Size: 4.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
14326063c8c7a272fe7e6cdb0459226551685211bde356cdecb9df17ab1f28db
|
|
| MD5 |
4e25aa15129a4196e6dfae0bc12e9b62
|
|
| BLAKE2b-256 |
31bd81249f9cb7bdc0bbdde6c49d871a0fadee46f6777eb4ea36636ed1aa4e4a
|
File details
Details for the file geospatial_analysis_environment-0.1.11-py3-none-any.whl.
File metadata
- Download URL: geospatial_analysis_environment-0.1.11-py3-none-any.whl
- Upload date:
- Size: 4.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6650c52e054671ca4285a089312dd00a4367427b3a2f8ea3f69e3e9c226eac3b
|
|
| MD5 |
96ed450364f6eec7b0c757279eed9de8
|
|
| BLAKE2b-256 |
09195c3c08ec205201aaa25b2dbb6286128077bd3f1ac3dcf0613b03adc2b029
|