Skip to content

earthdaily/analytic-processor-template

Repository files navigation


Logo

Analytic Processor Template

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

Report Bug · Request Feature

LinkedIn Twitter Youtube Issues MIT License

Table of Contents

About The Project

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.

(back to top)

Prerequisite

To be able to run this example, you will need to have following tools to be installed

  1. 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

  2. Install Conda

    Please install Conda on your computer. You can download and install it by following the instructions provided on the official Conda website

  3. Install Python Python 3.7+

  4. Install cookiecutter

$ 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.

(back to top)

Usage

Start using the template

To create your repo using this template, perform these steps :

  1. 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
    
  2. 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 Classification
  • project_repo : the name of the created repository of the project, default to e.g. machine-learning-based-time-series-classification
  • project_slug : "slug" of the project, default to e.g. machine_learning_based_time_series_classification
  • author_name : the name of the authors
  • description : "A short description of the project.",
  • python_interpreter : ["python3", "python"]
  • cloud_storage: ["none","aws", "azure", "both"]

Linking your repo to github

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

Project Organization

  {{ 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

(back to top)

Customization

You can modify the template according to your liking and needs

  1. Clone the project repository:

    git clone https://github.com/GEOSYS/analytic-processor-template
    
  2. Change the cookiecutter.json:

    You can enter any template parameter you want to use.

  3. Directly add or delete folders and files.

    You can then use the new template using the same commands as before.

(back to top)

Template in action

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

(back to top)

## Resources The following links will provide access to more information: - [EarthDaily agro developer portal ](https://developer.geosys.com/) - [Pypi package](https://pypi.org/project/geosyspy/)

(back to top)

Support development

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.

(back to top)

License

Distributed under the MIT License.

(back to top)

Contact

For any additonal information, please email us.

(back to top)

Copyrights

© 2023 Geosys Holdings ULC, an Antarctica Capital portfolio company | All Rights Reserved.

(back to top)