# Implémentation

## Structure de la base de données

La base de donnée est organisée afin de faciliter la sélection de dalles à partir d'une emprise géographique. Elle s'appuie sur 3 concepts clés:

- La notion d'emprise administrative
- La notion de produits (base de données spatiale raster)
- La notion de dalles à extraire (unité minimale de diffusion d'un produit raster)

L'application doit donc sélectionner, en fonction d'une emprise et d'un produit les dalles d'intersection.

A noter:

- Une emprise peut être de différents type: Commune, EPCI, PNR, SCOT. Pour faciliter la gestion, une table spatiale a été produite pour chaque type d'emprise.
- Un fichier de dallage peut varier selon le produit considéré. Par exemple, les données IGN sont diffusées selon le cas en dalles de 1 km  ou 5 km. 

Ainsi, les étapes d'interaction avec la BDD sont les suivantes:

1. l'utiliateur choisit un type d'emprise
2. le système récupère la liste des emprises dans la table correspondante à ce type et la propose à l'utilisateur
3. l'utiliateur choisit une emprise
4. le système:
   - croise cette emprise avec la couche spatiale de chaque produit pour voir ceux qui intersectent l'emprise choisie
   - propose à l'utilisateur cette liste de produit
5. l'utilisateur sélectionne un produit et lance l'opération de sélection des dallées
6. Le système croise l'emprise sléectionnée avec la couche des dalles du produit sélectionnée
7. Le système propose la liste des dalles à l'utilisateur sous forme:
   - de liens de téléchargement
   - d'un fichier TXT
   - d'un aperçu sous forme d'image
   - d'une application Leaflet auto-générée

La structure de la BDD est donc relativement simple:

- 1 table spatiale par type d'emprise (communes, epci, pnr et scot) avec les champs:
    - CODE
    - NAME
- 1 table spatiale de l'ensemble des produits. Chaque produit est généré par la fusion de l'ensemble des dalles qui le constitue:
    - CODE
    - NAME: permet d'afficher un nom de produit compéhensible par l'utilisateur (ex.: "ORTHO IGN RVB 2018-2019 (20cm) - Grand Est")
    - DATA_TYPE: non utilisé à ce stade
    - DATA_EXTENT: non utilisé à ce stade
    - DATA_PRODUCT: non utilisé à ce stade
    - DATA_DATE: non utilisé à ce stade
    - DATA_RESOLUTION: non utilisé à ce stade
    - DATA_COMPRESSION: non utilisé à ce stade
    - DATA_TYPE: non utilisé à ce stade
    - DATA_DIRECTORY
    - DATA_URL
    - METADATA_URL
    - LAYER_TILES: permet le lien avec les couches de dallage du produit en indiquant le nom de la table contenant les dalles du produit (ex.: "dalles_ortho_1km")
    - PARENT: permet de préciser l'interdépendance des produits pour les emprises à cheval sur plusieurs territoires. Ainsi pour un PNR est proposé le produit régional issu de l'union des produits départementaux ainsi que les sous-produits correspodant à chaque département. L'utilisateur peut alors choisir de télécharger uniquement les dalles de son territoire sur un département ou sur l'ensemble des départements qui le concernent.
- 1 table pour chaque dallage des produits

Les pricinpaux liens entre tables se font ensuite lors du calcul spatial des intersections via "geopandas".

![test](./raster-dl_bdd_diagram.png)

<!--
For full documentation visit [mkdocs.org](https://www.mkdocs.org).

## Commands

* `mkdocs new [dir-name]` - Create a new project.
* `mkdocs serve` - Start the live-reloading docs server.
* `mkdocs build` - Build the documentation site.
* `mkdocs -h` - Print help message and exit.

## Project layout

    mkdocs.yml    # The configuration file.
    docs/
        index.md  # The documentation homepage.
        ...       # Other markdown pages, images and other files.
-->