Learn how to use <geosys/> platform capabilities in your own business workflow! Build your processor and learn how to run them on your platform.
Who we are
Table of Contents
The aim of this project is to help our customers valuing <geosys/> platform capabilities to build their own analytic of interest.
This repository contains template files based on the cookiecutter system, which allows to rapidly create basic folder structure for data science projects.
When using the cookiecutter
command on this repository, it creates a git repository, folders and files structure populated with some of the information provided by the user.
To be able to run this example, you will need to have following tools to be installed
-
Install Git
Please install Git on your computer. You can download and install it by visiting the [official Git website] (https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) and following the provided instructions
-
Install Conda
Please install Conda on your computer. You can download and install it by following the instructions provided on the official Conda website
-
Install Python Python 3.7+
-
Install cookiecutter
- Cookiecutter Python package >= 1.4.0: This can be installed with pip by or conda depending on how you manage your Python packages:
$ pip install cookiecutter
or
$ conda config --add channels conda-forge
$ conda install cookiecutter
Make sure you have valid credentials. If you need to get trial access, please register here.
This package has been tested on Python 3.9.7.
To create your repo using this template, perform these steps :
-
Call the template:
You can directly call this template from github using the following command :
cookiecutter https://github.com/GEOSYS/analytic-processor-template
Or you can call it after cloning the analytic template repo locally :
git clone https://github.com/GEOSYS/analytic-processor-template cookiecutter analytic-processor-template
-
You will be prompted for the following information to initialize the project:
project_name
: Readable name of the project or technology, e.g. Machine Learning based Time Series Classificationproject_repo
: the name of the created repository of the project, default to e.g. machine-learning-based-time-series-classificationproject_slug
: "slug" of the project, default to e.g. machine_learning_based_time_series_classificationauthor_name
: the name of the authorsdescription
: "A short description of the project.",python_interpreter
: ["python3", "python"]cloud_storage
: ["none","aws", "azure", "both"]
Using cookiecutter creates the folders locally, but you may want to version control it. Here are the steps :
- Create a new repository, without adding any source to it (.gitignore and README.md files will be created by cookiecutter)
- go to the created project folder, and run:
git init
git add *
git commit -m "first commit"
- (modify first)
git remote add origin <yourorganisationgit>/<repo>.git
git push -u origin main
{{ cookiecutter.project_repo }}
├── README.md <- The top-level README for developers using this project.
├── notebooks <- Jupyter notebooks. Naming convention is a number (for ordering),
│ the creator's initials, and a short `-` delimited description, e.g.
│ `1.0-jqp-initial-data-exploration`.
│
├── requirements.txt <- The requirements file for reproducing the analysis environment, e.g.
│ generated with `pip freeze > requirements.txt`
├── environment.yml <- The conda requirements file for reproducing the analysis environment, e.g.
│ generated with `conda env export > environment.yml`, or manually
│
├── setup.py <- makes project pip installable (pip install -e .) so src can be imported
├───src <- Source code for use in tis project.
│ ├───main.py
│ ├───api
│ │ ├── __init__.py
│ │ └── api.py
│ └───{{ cookiecutter.project_slug }}
│ ├── __init__.py
│ └── {{ cookiecutter.project_slug }}.py
└── tests
You can modify the template according to your liking and needs
-
Clone the project repository:
git clone https://github.com/GEOSYS/analytic-processor-template
-
Change the cookiecutter.json:
You can enter any template parameter you want to use.
-
Directly add or delete folders and files.
You can then use the new template using the same commands as before.
Based on this template, we also created several examples of processors showcasing how to create tailored analytics based imagery, weather data on small geometries or regional entiies.
Here is the list of examples:
-
Imput pipeline:
- Reflectance datacube processor showcasing how to extract data from EarthData Store with premium cloud mask and publish a datacube on cloud storage.
- Analytic datacube processor showcasing how to extract analytics (mostly vegetation indexes here), package them as a N dimension object that will be persisted on cloud storage.
-
Analytic generation
- Sub entity analysis processor showcasing how the impact of an inputs or a practices applied on a sub area of a field using time series.
- Impacted areas processor showcasing how to compare vegetation index before and after an event to determine impacted areas.
- Regional level alerts processor showcasing how to generate alerts at regional level based on weather and vegetation status.
If this project has been useful, that it helped you or your business to save precious time, don't hesitate to give it a star.
Distributed under the MIT License.
For any additonal information, please email us.
© 2023 Geosys Holdings ULC, an Antarctica Capital portfolio company | All Rights Reserved.