Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Écriture de l'outil tms-toolbox (nom provisoire) #10

Closed
XavDmz opened this issue Jun 15, 2023 · 4 comments · Fixed by #18
Closed

Écriture de l'outil tms-toolbox (nom provisoire) #10

XavDmz opened this issue Jun 15, 2023 · 4 comments · Fixed by #18
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@XavDmz
Copy link

XavDmz commented Jun 15, 2023

Objectifs

Il s'agit de porter en python dans ce dépôt l'outil perl "tms-toolbox" du dépôt rok4/tools. (Lien vers la documentation d'origine.)
Ce portage est l'occasion d'ajouter des fonctionnalités dont le manque a été exprimé par des utilisateurs de la version perl.
Ce portage peut aussi être l'occasion de retirer des fonctionnalités superflues, inutilisées. Encore faudrait-il les identifier.

Fonctionnalités

Le fonction de cet outil est d'assurer des conversion de "coordonnées" entre différents systèmes de représentation :

  • le système spatial de référence (SRS) : coordonnées ou géométries
  • les matrices de tuiles du tile matrix set (TMS) : niveau, indices de la tuile dans la matrice associée à ce niveau
  • la matrices des dalles : niveau, indices de la dalle dans la matrice associée à ce niveau
  • stockage : chemin d'accès à une image

Conversions possibles

En reprenant la nomenclature de la documention originale, les conversions prévues sont les suivantes, sans avoir trié et retiré les anciennes fonctionnalités superflues :

Entrée Sortie Options obligatoires Options facultatives Actualité
BBOX GETTILE_PARAMS level, slabsize ancienne
BBOX SLAB_INDICES level, slabsize ancienne
BBOX SQL_FILE level, slabsize ancienne, abandonnée
BBOXES_LIST SLAB_INDICES level, slabsize ancienne
GEOM_FILE GETTILE_PARAMS level, slabsize ancienne
GEOM_FILE SLAB_INDICES level, slabsize ancienne
GEOM_FILE SLABS_COUNT level, slabsize ancienne
GEOM_FILE SQL_FILE level, slabsize ancienne, abandonnée
POINT SLAB_INFO slabsize level, storage ancienne
POINT TILE_INFO level ancienne
PYRAMID_LIST GEOM_FILE level, slabsize ancienne
PYRAMID_LIST GETTILE_PARAMS slabsize ratio ancienne
SLAB_INDICE TFW_FILE level, slabsize ancienne
SLAB_INDICE GEOM level, slabsize ancienne
SLAB_INDICES_LIST GETMAP_PARAMS level, slabsize ratio ancienne
SLAB_INDICES_LIST SLAB_PATHS level, slabsize above ancienne
SLAB_PATH GEOM level, slabsize storage ancienne
TILE_INDICE SLAB_INFO level, slabsize storage ancienne
TILE_INDICE GETMAP_PARAMS level buffer ancienne
TILES_INDICES_LIST BBOX level nouvelle
TILES_INDICES_LIST GEOM level nouvelle, à confirmer

Autres fonctionnalités

  • Documentation simple en ligne de commande, en exétuctant l'outil avec les arguments standard -h, et --help. (--usage aussi ?).
  • Affichage du numéro de version en ligne de commande avec l'argument --version.
  • Permettre l'exécution d'une suite de conversions liées à un même TMS, et un même jeu de données le cas échéant, en limitant les opérations redondantes.
@XavDmz XavDmz added the enhancement New feature or request label Jun 15, 2023
@XavDmz XavDmz self-assigned this Jun 15, 2023
@XavDmz
Copy link
Author

XavDmz commented Jun 15, 2023

Pour le moment, j'en suis encore à essayer de déterminer les besoins associés à chaque fonctionnalité.

@XavDmz
Copy link
Author

XavDmz commented Jun 15, 2023

Je pense qu'il ne faut pas que je me préoccupe de l'optimisation de ressources par réutilisation de paramètres et variables avant d'avoir implémenter le reste des fonctionnalités. en particulier les conversions.
Cela permet en effet :

  • d'avoir des tests automatisés pertinents et simples sur les conversions, qui permettrons de s'assurer du fonctionnement de base de ces conversions, et donc de savoir si la tentative d'optimisation provoque ou pas des anomalies.
  • de déterminer ce qui peut être réutilisé d'une exécution sur l'autre, dans le but d'optimiser la consommation de ressources d'une suite de conversions.

Il faudrait aussi définir précisément dans quel cas on veut conserver les éléments déjà lus ou calculés, et dans quel cas on veut les réinitialiser.

@XavDmz
Copy link
Author

XavDmz commented Jul 11, 2023

Edition du tableau des conversion : le format de sortie "SQL_FILE" est abandonné, car sans rapport avec rok4.

@XavDmz
Copy link
Author

XavDmz commented Sep 6, 2023

Ajout de fonctionnalités à implémenter :

  • Fonctionnnalité de vérification de la nature mathématique d'un TMS (quad tree, etc)
  • Fonctionnalité de création d'un TMS à partir d'un niveau de base
    1. L'utilisateur fournit une BBOX, une résolution, et une projection qui correspondront au niveau de base
    2. L'outil crée le niveau adapté, puis remonte en mode quad tree jusqu'au sommet de la pyramide.
    3. Une fois tous les niveaux créés, l'outil les nomme et écrit le fichier de TMS

=> il faudrait pour cela inclure les constructeurs et fonctions adaptées dans les classes TileMatrix et TileMatrixSet

@Dolite Dolite self-assigned this Apr 12, 2024
@Dolite Dolite added this to the 1.4.0 milestone Apr 12, 2024
@Dolite Dolite linked a pull request Apr 29, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants