Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
122 commits
Select commit Hold shift + click to select a range
d2e6872
README.md : amélioration de la documentation pour faciliter la compré…
fbacquelot Mar 10, 2025
58f1331
[pre-commit.ci] Corrections automatiques appliquées par les git hooks.
pre-commit-ci[bot] Mar 10, 2025
d992180
README.md : ajout de l'export des variables d'environnement python à …
fbacquelot Mar 11, 2025
b5d72cb
[pre-commit.ci] Corrections automatiques appliquées par les git hooks.
pre-commit-ci[bot] Mar 11, 2025
e990240
README.md : résultat du petit script de lancement sur la classe 'Tile…
fbacquelot Mar 11, 2025
87ca7b4
Merge branch 'feature/doc-new-users' of https://github.com/rok4/core-…
fbacquelot Mar 11, 2025
1aaaab9
README.md : mise au format python string des affichages à l'écran des…
fbacquelot Mar 11, 2025
f6b4378
README.md : mise à jour complément d'informations "Utiliser la libra…
fbacquelot Mar 18, 2025
d1ad283
README.md : mise à jour de la partie "Utiliser la librairie"
fbacquelot Mar 18, 2025
37f4ec1
[pre-commit.ci] Corrections automatiques appliquées par les git hooks.
pre-commit-ci[bot] Mar 18, 2025
b5099a5
README.MD : anonymer
fbacquelot Mar 19, 2025
1c30c0d
Merge branches 'feature/doc-new-users' and 'feature/doc-new-users' of…
fbacquelot Mar 19, 2025
4e2b16d
README.md : mise à jour => exploitation des fichiers json des couches…
fbacquelot Mar 20, 2025
90ace5c
[pre-commit.ci] Corrections automatiques appliquées par les git hooks.
pre-commit-ci[bot] Mar 20, 2025
a68f078
README.md : rajout partie ouvrir le json d'un style et d'un tilematri…
fbacquelot Mar 20, 2025
25aedd8
Merge branch 'feature/doc-new-users' of https://github.com/rok4/core-…
fbacquelot Mar 20, 2025
95e8781
README.md : mise à jour de l'arborescence dans l'organisation des sou…
fbacquelot Mar 20, 2025
9c87766
README.md : mise à jour de la rubrique 'Utiliser la librairie'
fbacquelot Mar 20, 2025
eb8c529
README.md : mise à jour des imports de classes et de fonctions des pa…
fbacquelot Mar 21, 2025
8f4cd5c
README.md : exploitation de la classe Pyramid dans la rubrique 'Utili…
fbacquelot Mar 23, 2025
31b5ac6
[pre-commit.ci] Corrections automatiques appliquées par les git hooks.
pre-commit-ci[bot] Mar 23, 2025
74eed5e
README.md : rajout dans la rubrique 'Utiliser la librairrie'
fbacquelot Mar 23, 2025
ca5aeae
Merge branch 'feature/doc-new-users' of https://github.com/rok4/core-…
fbacquelot Mar 23, 2025
fea9bb3
[pre-commit.ci] Corrections automatiques appliquées par les git hooks.
pre-commit-ci[bot] Mar 23, 2025
e425b46
README.md : mise à jour utiliser la librairie suite retour de Théo
fbacquelot Mar 27, 2025
88417b2
Merge branch 'feature/doc-new-users' of https://github.com/rok4/core-…
fbacquelot Mar 27, 2025
b2008d3
[pre-commit.ci] Corrections automatiques appliquées par les git hooks.
pre-commit-ci[bot] Mar 27, 2025
764b975
HOWTO.md : explication donnée par un cas d'usage simple => exemple av…
fbacquelot Mar 27, 2025
2b492ec
[pre-commit.ci] Corrections automatiques appliquées par les git hooks.
pre-commit-ci[bot] Mar 27, 2025
d06cc27
README.md : utilisation de tilesmatrixset
fbacquelot Mar 27, 2025
0385f9a
Merge branch 'feature/doc-new-users' of https://github.com/rok4/core-…
fbacquelot Mar 27, 2025
79dcd23
README.md : esthétique
fbacquelot Mar 27, 2025
cdb8cc6
README.md : correction esthétique
fbacquelot Mar 27, 2025
bfe0662
HOWTO.md & README.md : mise à jour avec le recours au 'TileMatrixSet'
fbacquelot Mar 27, 2025
c6ebac7
HOWTO.md & README.md : mise à jour partie 'TileMatrixSet()'
fbacquelot Mar 27, 2025
8957f82
[pre-commit.ci] Corrections automatiques appliquées par les git hooks.
pre-commit-ci[bot] Mar 27, 2025
f7c48c9
HOWTO.md & README.md : màj
fbacquelot Mar 27, 2025
5555fed
Merge branch 'feature/doc-new-users' of https://github.com/rok4/core-…
fbacquelot Mar 27, 2025
6f7aa4d
README.md : petite correction
fbacquelot Mar 27, 2025
3b35be5
README.md : expression
fbacquelot Mar 27, 2025
32a86bd
README.md : ponctuation
fbacquelot Mar 27, 2025
39ca9c3
README.md : précision
fbacquelot Mar 27, 2025
7c94e85
HOWTO.md : esthétique
fbacquelot Mar 27, 2025
70e2702
HOWTO.md : correction
fbacquelot Mar 27, 2025
7028932
HOWTO.md : correction
fbacquelot Mar 27, 2025
30c89ce
HOWTO.md : description des descripteurs de couches
fbacquelot Mar 27, 2025
14ab941
HOWTO.md : vocabulaire
fbacquelot Mar 27, 2025
cb97c4c
[pre-commit.ci] Corrections automatiques appliquées par les git hooks.
pre-commit-ci[bot] Mar 27, 2025
79f0620
HOWTO.md : vocabulaire
fbacquelot Mar 27, 2025
35138ad
Merge branch 'feature/doc-new-users' of https://github.com/rok4/core-…
fbacquelot Mar 27, 2025
702aab9
HOWTO.md : esthétique
fbacquelot Mar 27, 2025
52416ab
HOWTO.md : rajout partie 'styles' du projet rok4
fbacquelot Mar 27, 2025
0cd2406
[pre-commit.ci] Corrections automatiques appliquées par les git hooks.
pre-commit-ci[bot] Mar 27, 2025
bb29304
README.md : autres parties restantes à faire => compléter les TODO
fbacquelot Mar 27, 2025
9ae3503
[pre-commit.ci] Corrections automatiques appliquées par les git hooks.
pre-commit-ci[bot] Mar 27, 2025
22c8a44
README.md : orthographe
fbacquelot Mar 27, 2025
363f0e6
Merge branch 'feature/doc-new-users' of https://github.com/rok4/core-…
fbacquelot Mar 27, 2025
e8b505f
README.md : ajout partie exploiter un jeu de données raster
fbacquelot Mar 28, 2025
1964479
README.md : vocabulaire
fbacquelot Mar 28, 2025
050c5ec
README.md : esthétique
fbacquelot Mar 28, 2025
9a6f36e
HOWTO.md & README.md : ajout partir comment lire des données Vecteur
fbacquelot Mar 28, 2025
a740aaf
[pre-commit.ci] Corrections automatiques appliquées par les git hooks.
pre-commit-ci[bot] Mar 28, 2025
2de06c3
README.md : esthétique
fbacquelot Mar 28, 2025
0f6e22b
Merge branch 'feature/doc-new-users' of https://github.com/rok4/core-…
fbacquelot Mar 28, 2025
1c20937
HOWTO.md & README.md : màj
fbacquelot Mar 28, 2025
f7d2393
README.md : esthétique
fbacquelot Mar 28, 2025
dffb96e
[pre-commit.ci] Corrections automatiques appliquées par les git hooks.
pre-commit-ci[bot] Mar 28, 2025
8887715
README.md : esthétique
fbacquelot Mar 28, 2025
88b4364
Merge branch 'feature/doc-new-users' of https://github.com/rok4/core-…
fbacquelot Mar 28, 2025
ac68fc3
HOWTO.md & README.md : màj
fbacquelot Mar 28, 2025
335e150
[pre-commit.ci] Corrections automatiques appliquées par les git hooks.
pre-commit-ci[bot] Mar 28, 2025
e90740b
HOWTO.md : màj
fbacquelot Mar 28, 2025
bb77668
Merge branch 'feature/doc-new-users' of https://github.com/rok4/core-…
fbacquelot Mar 28, 2025
bf215a3
HOWTO.md : màj partie données Vecteur
fbacquelot Mar 28, 2025
6eb6883
HOWTO.md & README.md : màj
fbacquelot Mar 28, 2025
e629571
HOWTO.md : vocabulaire
fbacquelot Mar 28, 2025
8933617
HOWTO.md & README.md : màj => lien vers documentation 'HOWTO.md'
fbacquelot Mar 28, 2025
16e9873
HOWTO.md & README.md : màj lien vers documentation HOWTO.md
fbacquelot Mar 28, 2025
97aad07
HOWTO.md : màj
fbacquelot Mar 28, 2025
9324383
README.md : erratum
fbacquelot Mar 28, 2025
7e3a5f5
README.md : màj lien documentation
fbacquelot Mar 28, 2025
a481b45
README.md : màj lien documentation
fbacquelot Mar 28, 2025
1f95b64
README.md : correction
fbacquelot Mar 28, 2025
3d2c74f
README.md : esthétique
fbacquelot Mar 28, 2025
cf09f7d
README.md : suppression car trivial
fbacquelot Mar 31, 2025
5c012ee
HOWTO.md : description des couches
fbacquelot Mar 31, 2025
29dd748
HOWTO.md & README.md : màj partie stockage buckets
fbacquelot Mar 31, 2025
962b813
README.md : esthétique => mise en page
fbacquelot Mar 31, 2025
a435561
README.md & HOWTO.md : ajout descriptions des paramètres décrivant le…
fbacquelot Apr 1, 2025
0ea2139
REDAME.md : rajout des onze styles du projet rok4 dans le README
fbacquelot Apr 1, 2025
24fb62b
README.md : màj styles projet rok4
fbacquelot Apr 1, 2025
00d6da2
[pre-commit.ci] Corrections automatiques appliquées par les git hooks.
pre-commit-ci[bot] Apr 1, 2025
1c14f6d
HOWTO.md : màj
fbacquelot Apr 1, 2025
dce69f6
README.md : màj
fbacquelot Apr 1, 2025
c620821
README.md : màj stockage buckets lien vers HOWTO.md
fbacquelot Apr 1, 2025
ef5e0c8
README.md : màj
fbacquelot Apr 1, 2025
0e81e84
[pre-commit.ci] Corrections automatiques appliquées par les git hooks.
pre-commit-ci[bot] Apr 1, 2025
137fb29
pyproject.toml : ajout de la librairie python pydeps pour générer aut…
fbacquelot Apr 3, 2025
356b808
pyproject.toml: ajout de la virgule car on ajoute un élément à la liste
fbacquelot Apr 3, 2025
e005f89
HOWTO.md & README.md : premières corrections suite retour de Théo
fbacquelot May 13, 2025
6114777
HOWTO.md : premières corrections suite retour de Théo
fbacquelot May 13, 2025
d9358bc
HOWTO.md & layer.py : corrections suite retour de Théo
fbacquelot May 13, 2025
5e068bb
HOWTO.md : orthographe
fbacquelot May 13, 2025
8e52433
README.md : suppression des parties 'tms' et 'styles' car inutiles ici
fbacquelot May 13, 2025
0a09acb
HOWTO.md : suite corrections suite retour de Théo
fbacquelot May 14, 2025
1922aef
HOWTO.md : correction exemple d'utilisation avec une liste de diction…
fbacquelot May 15, 2025
abbd8e8
HOWTO.md : esthétique suite remarques de Théo
fbacquelot May 15, 2025
639a8d4
HOWTO.md : correction suite remarque de Théo sur l'export des variabl…
fbacquelot May 15, 2025
d0116fb
HOWTO.md : esthétique suite remarque de Théo sur l'indentation du code
fbacquelot May 15, 2025
38ce70a
[pre-commit.ci] Corrections automatiques appliquées par les git hooks.
pre-commit-ci[bot] May 15, 2025
936a94b
HOWTO.md : correction esthétique
fbacquelot May 15, 2025
2aaedf9
Merge branch 'feature/doc-new-users' of https://github.com/rok4/core-…
fbacquelot May 15, 2025
fa69d10
HOWTO.md : vocabulaire
fbacquelot May 15, 2025
ea6a34b
HOWTO.md : indentation
fbacquelot May 16, 2025
d591cd3
HOWTO.md : mettre le code avant l'exemple d'utilisation
fbacquelot May 16, 2025
4824d57
HOWTO.md : petite précision
fbacquelot May 16, 2025
299eb8b
HOWTO.md, style.py : déplacement de bloc dans les docstring de cons…
fbacquelot May 16, 2025
bdd6bdb
tile_matrix_set.py : ajout d'un exmple de json pour un tms dans le co…
fbacquelot May 16, 2025
7624be1
[pre-commit.ci] Corrections automatiques appliquées par les git hooks.
pre-commit-ci[bot] May 16, 2025
3f909d8
pyproject.toml : ajout de l'option --max-module-depth fixé à 2 pour l…
fbacquelot May 21, 2025
a7e5545
Merge branch 'feature/doc-new-users' of https://github.com/rok4/core-…
fbacquelot May 21, 2025
6601873
pyproject.toml: avec l'option --max-bacon fixé à 4 et l'option cluster
fbacquelot May 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
252 changes: 252 additions & 0 deletions HOWTO.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,252 @@
## Exemples de cas d'utilisations des librairies génériques du projet ROK4

Pour le chargement d'un tilematrixset par exemple, tapez les ligne de commande suivantes afin d'exporter toutes les variables d'environnement du projet `ROK4`:

```sh
export ROK4_TMS_DIRECTORY=s3://tilematrixsets
export ROK4_S3_KEY=rok4
export ROK4_S3_SECRETKEY=rok4S3storage
export ROK4_S3_URL=http://localhost:9000
```

### Comment lire une tuile de pyramide de données raster ?

* On doit passer le bucket s3 de stockage exemple : ```"s3://pyramids/ALTI.json"``` en paramètre d'entrée de la méthode de classe ```from_descriptor()``` appliquée à la classe ```Pyramid()``` tel que :

```py
# descriptor de la pyramide ALTI
pyr_alti_descriptor = Pyramid.from_descriptor("s3://pyramids/ALTI.json")
```

* Si l'on veut obtenir les indices d'une tuile de pyramide raster, on utilise la fonction ```get_tiles_indices(x_point, y_point, pyramid_level,srs_coords)```

```py
level, col, row, pcol, prow = pyr_alti_descriptor.get_tile_indices(16, 16, "0", srs = "IGNF:LAMB93")
```

où :
* pcol : indice de colonne de pixels à partir des coordonnées du point,
* prow : indice de rangée de pixels à partir des coordonnées du point,
* level : niveau de la tuile,
* col : colonne de la tuile,
* row : rangée de la tuile.


* Si l'on veut récupérer les données raster d'une tuile de Pyramide :
```py
data_raster = pyr_alti_descriptor.get_tile_data_raster(level, col, row)
```
![ROK4 pyramide ALTI](./HOWTO.md#cas-dusage-simple--exemple-avec-des-donn%C3%A9es-alti)

### Comment lire une tuile de pyramide de données vecteur ?

* Même principe qu'avec le cas RASTER, si l'on veut récupérer les données vecteur d'une tuile de Pyramide :

* Cas d'usage : données VECTEUR : pyramide LIMITES ADMINISTRATIVES
```py
pyramid_vector = Pyramid.from_descriptor("s3://pyramids/LIMADM.json")
level, col, row, pcol, prow = pyramid.get_tile_indices(tile_level, tile_column, tile_row)
data_vector = pyramid.get_tile_data_vector(level, col, row)
```

![ROK4 pyramide VECTEUR](./HOWTO.md#comment-exploiter-des-donn%C3%A9es-vecteur-)


### Comment exploiter des données vecteur ?

* A partir du chargement d'un fichier vecteur (shapefile, csv, GeoJSON ou Geopackage) comme suit :
* le chemin d'accès au fichier/objet,
* csv : le dictionnaire des paramètres CSV.

```py
from rok4.vector import Vector

vector = Vector.from_file("https://github.com/rok4/core-python/blob/develop/tests/fixtures/ARRONDISSEMENT.shp")
vector_csv1 = Vector.from_file(
"https://github.com/rok4/core-python/blob/develop/tests/fixtures/vector.csv",
csv={"delimiter":";", "column_x":"x", "column_y":"y"}
)
vector_csv2 = Vector.from_file(
"https://github.com/rok4/core-python/blob/develop/tests/fixtures/vector2.csv",
csv={"delimiter":";", "column_wkt":"WKT"}
)
```

* A partir des paramètres comme suit :
* le chemin d'accès au fichier/objet,
* bbox : le rectangle de la boundary box dans la projection des données,
* layers : le nom des couches vecteurs, leur nombre d'objets avec leurs attributs.

```py
from rok4.vector import Vector

vector = Vector.from_parameters(
"https://github.com/rok4/core-python/blob/develop/tests/fixtures/ARRONDISSEMENT.shp",
(1,2,3,4),
[('ARRONDISSEMENT', 14, [('ID', 'String'), ('NOM', 'String'), ('INSEE_ARR', 'String'), ('INSEE_DEP', 'String'), ('INSEE_REG', 'String'), ('ID_AUT_ADM', 'String'), ('DATE_CREAT', 'String'), ('DATE_MAJ', 'String'), ('DATE_APP', 'Date'), ('DATE_CONF', 'Date')]
)]
)
```

### Comment exploiter des données raster ?

On part de la classe 'RasterSet()' qui décrit la structure d'un jeu de données raster :

* à partir du descriptor tel que :

```py
from rok4.raster import RasterSet

raster_set = RasterSet.from_descriptor(
"file:///data/images/descriptor.json"
)
```

* ou bien à partir d'une liste d'images et de code srs tel que :

```py
from rok4.raster import RasterSet

raster_set = RasterSet.from_list(
path="file:///data/SC1000.list",
srs="EPSG:3857"
)
```

On part de la classe 'Raster()' qui définit des données raster :

* à partir d'informations d'un fichier stocké en image TIFF tel que :

```py
from rok4.raster import Raster

raster = Raster.from_file("file:///data/SC1000/0040_6150_L93.tif")
```

* à partir d'un chargement d'informations à partir de paramètres liées à une image TIFF couplée à un masque d'image TIFF tel que :

```py
from rok4.raster import Raster

raster = Raster.from_parameters(
path="file:///data/SC1000/_0040_6150_L93.tif",
mask="file:///data/SC1000/0040_6150_L93.msk",
bands=3,
format=ColorFormat.UINT8,
dimensions=(2000, 2000),
bbox=(40000.000, 5950000.000, 240000.000, 6150000.000)
)
```


### Comment définir le stockage de tous les buckets du projet rok4 sur le bucket s3 ?

* Pour obtenir le niveau le plus bas et le niveau le plus haut des pyramides de tuile à partir du descriptor:
```py
from rok4.pyramid import Pyramid
from rok4.storage import get_data_str, get_infos_from_path, put_data_str
from rok4.utils import reproject_bbox

storage_type, path, root, base_name = get_infos_from_path(descriptor)
pyramids = [{
"bottom_level": "13",
"top_level": "0",
"path": "s3://pyramids/BDORTHO.json"
}]
for p in pyramids :
pyramid = Pyramid.from_descriptor(p["path"])
bottom_level = p.get("bottom_level", None)
top_level = p.get("top_level", None)
levels = pyramid.get_levels(bottom_level, top_level)
```

=> exemple pour la BDORTHO : ```s3://layers/bdortho.json```

### Cas d'usage simple : exemple avec des données ALTI

```sh
myusername@pcname:~$ python3 data_tilesmatrix_launcher.py
créer une pyramide à partir du path de son descriptor RASTER pyramid 'ALTI' (S3 storage)
format des tuiles de données vecteur : TIFF_ZIP_FLOAT32
niveau le plus bas de la pyramide : RASTER pyramid's level '13' (S3 storage)
niveau le plus haut de la pyramide : RASTER pyramid's level '0' (S3 storage)
données du slab:
type de slab SlabType.DATA
identifiant du niveau 10
nombre de tuiles en largeur par slab 21
nombre de tuiles en hauteur par slab : 29
```

### Comment obtenir ces résultats ?

```py
#!/usr/bin/env python3

# import des packages de rok4
from rok4.enums import PyramidType, SlabType, StorageType, ColorFormat
from rok4.pyramid import Pyramid, Level

# chemin du descriptor de la pyramide alti
path_to_pyramid_alti_descriptor = "s3://pyramids/ALTI.json"

# descriptor de la pyramide ALTI
pyr_alti_descriptor = Pyramid.from_descriptor(path_to_pyramid_alti_descriptor)
print (f"créer une pyramide à partir du path de son descriptor {pyr_alti_descriptor}")

print(f"format des tuiles de données vecteur : {pyr_alti_descriptor.format}")
print(f"niveau le plus bas de la pyramide : {pyr_alti_descriptor.bottom_level}")
print(f"niveau le plus haut de la pyramide : {pyr_alti_descriptor.top_level}")

slab_type, level, column, row = pyr_alti_descriptor.get_infos_from_slab_path(slab_alti_path)
slab_indexes = pyr_alti_descriptor.get_infos_from_slab_path(slab_alti_path)

print ("données du slab: \n")
print (f" type de slab {slab_indexes[0]}")
print (f" identifiant du niveau {slab_indexes[1]}")
print (f" nombre de tuiles en largeur par slab {slab_indexes[2]}")
print (f" nombre de tuiles en hauteur par slab : {slab_indexes[3]}")
level, col, row, pcol, prow = pyr_alti_descriptor.get_tile_indices(16, 16, "0", srs = "IGNF:LAMB93")
data_raster = pyr_alti_descriptor.get_tile_data_raster(level, col, row)

print(data_raster)
```

### Exploitation des données d'un fichier JSON d'un tilematrixset exemple : PM.json

```py
#!/usr/bin/env python3
import json
# import des packages de rok4
from rok4.enums import PyramidType, SlabType, StorageType, ColorFormat
from rok4.tile_matrix_set import TileMatrix, TileMatrixSet

try:
tms = TileMatrixSet("PM")
print(f"le nom du tms : {tms.name}")
print(f"le chemin du tms : {tms.path}")
print(f"le code srs : {tms.srs}")

typePyramid = PyramidType("RASTER")
slabType = SlabType("MASK")
storageType = StorageType("s3://")

print (f"type de pyramide : {typePyramid}")
print (f"type de slab : {slabType}")
print (f"type de stockage : {storageType}")

# Ouverture d'un fichier JSON d'un tilematrixset
print ("\nOuverture d'un fichier JSON d'un tilematrixset\n")

with open("s3://tilematrixsets/PM.json") as json_file:
data = json.load(json_file)
print(f"type de structure de données de data : {type(data)}")
print(f'nom de la pyramide : {data["id"]}')
print(f'code srs projection planimétrique : {data["crs"]}')
print(f'nombre de tuiles de la pyramide : {len(data["tileMatrices"])}')
print(f'coordonnées du point origine : {data["tileMatrices"][0]["pointOfOrigin"]}')
print(f'taille de la cellule : {data["tileMatrices"][0]["cellSize"]}')
print(f'nombre d"éléments de la matrices de tuiles cad le nombre de tuiles : {len(data["tileMatrices"])}')

except Exception as exc :
print (exc)
```
77 changes: 69 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,23 +10,84 @@ Installations système requises :

* debian : `apt install python3-rados python3-gdal`

Puis passer en mode superutilisateur pour taper cette ligne de commande et installer l'environnement virtuel de python :
```sh
sudo apt install python3.10-venv
```
puis revenir en mode normal et tapez cette ligne de commande :
```sh
source .venv/bin/activate
```

L'environnement d'exécution doit avoir accès aux librairies système. Dans le cas d'une utilisation au sein d'un environnement python, précisez bien à la création `python3 -m venv --system-site-packages .venv`.

Depuis [PyPI](https://pypi.org/project/rok4/) : `pip install rok4`

Depuis [GitHub](https://github.com/rok4/core-python/releases/) : `pip install https://github.com/rok4/core-python/releases/download/x.y.z/rok4-x.y.z-py3-none-any.whl`

L'environnement d'exécution doit avoir accès aux librairies système. Dans le cas d'une utilisation au sein d'un environnement python, précisez bien à la création `python3 -m venv --system-site-packages .venv`.

## Utiliser la librairie

```python
from rok4.tile_matrix_set import TileMatrixSet
En dehors du dépôt `core-python`, tapez les ligne de commande suivantes dans un fichier shell `envvar.sh` contenant l'export de toutes les

variables d'environnement du projet `ROK4`:

try:
tms = TileMatrixSet("file:///path/to/tms.json")
except Exception as exc:
print(exc)
```sh
export ROK4_TMS_DIRECTORY=s3://tilematrixsets
export ROK4_S3_KEY=rok4
export ROK4_S3_SECRETKEY=rok4S3storage
export ROK4_S3_URL=http://localhost:9000
```


### Comment définir le stockage de tous les buckets du projet rok4 sur le bucket s3 ?

![ROK4 STOCKAGE BUCKET](./HOWTO.md#comment-d%C3%A9finir-le-stockage-de-tous-les-buckets-du-projet-rok4-sur-le-bucket-s3-)


### Comment définir des données VECTEUR ?

* A partir d'un fichier vecteur (shapefile, csv, GeoJSON ou Geopackage),
* le chemin d'accès au fichier/objet,
* csv : le dictionnaire des paramètres CSV :
-srs : système de référence spatiale de la géométrie,
-column_x : le champ de coordonnée X
-column_y : le champ de coordonnée Y
-column_wkt : le champ du WKT(Well Known Text) de la géométrie

* A partir des paramètres :
* le chemin d'accès au fichier/objet,
* bbox : le rectangle de la boundary box dans la projection des données
* layers : le nom des couches vecteurs, leur nombre d'objets avec leurs attributs

![ROK4 DATA VECTEUR](./HOWTO.md#comment-exploiter-des-donn%C3%A9es-vecteur-)

### Comment définir des données RASTER et une structure décrivant un jeu de données RASTER ?

On part de la classe 'RasterSet()' qui décrit la structure d'un jeu de données raster :

* à partir du descriptor ```"file:///data/images/descriptor.json"```
* ou bien à partir d'une liste d'images et de code srs ```(
path="file:///data/SC1000.list",
srs="EPSG:3857"
)```


On part de la classe 'Raster()' qui définit des données raster :
* à partir d'informations d'un fichier stocké en image TIFF ```file:///data/SC1000/0040_6150_L93.tif```
* à partir d'un chargement d'informations à partir de paramètres liées à une image TIFF ```file:///data/SC1000/_0040_6150_L93.tif``` couplée à un masque d'image TIFF ```file:///data/SC1000/0040_6150_L93.msk```


Ces deux méthodologies permettent de retourner un sortie les éléments suivants décrivant le jeu de données raster :
* chemin d'accès au fichier/objet (ex: file:///path/to/image.tif or s3://bucket/image.tif)
* nombre de bandes colorées,
* la boundary box (le rectangle),
* les dimensions de l'image en pixel,
* le format numérique des valeurs des couleurs,
* le chemin d'accès au masque associé,
* l'extension du masque et du fichier au format TIFF. (ex: ```file:///path/to/image.msk``` or ```s3://bucket/image.msk```)

![ROK4 RASTERSET](./HOWTO.md#comment-exploiter-des-donn%C3%A9es-raster-)

Les variables d'environnement suivantes peuvent être nécessaires, par module :

* `storage` : plus de détails dans la documentation technique du module
Expand Down
3 changes: 2 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@ dependencies = [

[project.optional-dependencies]
doc = [
"pdoc3 >= 0.10.0"
"pdoc3 >= 0.10.0",
"pydeps --max-bacon=4 --cluster --max-cluster-size=3 --min-cluster-size=2 --keep-target-cluster"
]

dev = [
Expand Down
Loading