... | @@ -159,7 +159,6 @@ On passe le chemin en argument ; on teste que ce chemin existe avec Path.is_file |
... | @@ -159,7 +159,6 @@ On passe le chemin en argument ; on teste que ce chemin existe avec Path.is_file |
|
Les instructions ont été trouvées dans des discussions sur un forum dédié : on utilise le module shapefile pour lire le fichier shape, et ensuite on utilise les méthodes de l'objet lu pour en extraire l'information utile (variable feature) et le convertir en objet shapely avec shape.
|
|
Les instructions ont été trouvées dans des discussions sur un forum dédié : on utilise le module shapefile pour lire le fichier shape, et ensuite on utilise les méthodes de l'objet lu pour en extraire l'information utile (variable feature) et le convertir en objet shapely avec shape.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*lecture_shape* suppose qu'il y a dans le fichier shape un seul objet intéressant, un polygone.
|
|
*lecture_shape* suppose qu'il y a dans le fichier shape un seul objet intéressant, un polygone.
|
|
On ne va donc travailler qu'avec le premier objet : feature = shape_lu.shapeRecords()[0]
|
|
On ne va donc travailler qu'avec le premier objet : feature = shape_lu.shapeRecords()[0]
|
|
On propose de tracer l'objet pour vérifier que l'import s'est bien passé : on remarque que l'instruction x, y = objet_shapely.exterior.xy permet d'extraire la liste des abscisses et la liste des ordonnées des points, information dont on a besoin pour tracer avec matplotlib.
|
|
On propose de tracer l'objet pour vérifier que l'import s'est bien passé : on remarque que l'instruction x, y = objet_shapely.exterior.xy permet d'extraire la liste des abscisses et la liste des ordonnées des points, information dont on a besoin pour tracer avec matplotlib.
|
... | @@ -177,9 +176,12 @@ if isinstance(shape_item, PolygonShapely): |
... | @@ -177,9 +176,12 @@ if isinstance(shape_item, PolygonShapely): |
|
|
|
|
|
La fonction retourne la liste des tuples (x,y) pour les objets 2D ainsi que la liste des points indépendants, non exploités dans la suite.
|
|
La fonction retourne la liste des tuples (x,y) pour les objets 2D ainsi que la liste des points indépendants, non exploités dans la suite.
|
|
|
|
|
|
#### Une classe ObjetsShapely, qui permet d'affiner la manipulation des shapes avec une méthode de lecture tirée de la fonction "indépendante", une méthode __repr__ qui définit ce qui se passe quand on tape print(mon_instance_de_cette_classe), et une méthode pour tracer qui prend en argument un objet de type "Axes", ce qui permet de construire une carte en plusieurs étapes
|
|
#### classe ObjetsShapely
|
|
|
|
Elle permet d'affiner la manipulation des shapes avec une méthode de lecture tirée de la fonction "indépendante", une méthode __repr__ qui définit ce qui se passe quand on tape print(mon_instance_de_cette_classe), et une méthode pour tracer qui prend en argument un objet de type "Axes", ce qui permet de construire une carte en plusieurs étapes
|
|
|
|
|
|
#### Une classe Champ, qui permet d'affiner la manipulation des champs avec une méthode creer_heatmap qui va demander à l'utilisateur le format et le fichier, pour aiguiller vers l'une ou l'autre méthode de lecture, pour du binaire ou du grid ascii. Cette méthode s'exécute dès la création de l'instance, on pourrait faire autrement.
|
|
#### classe Champ
|
|
|
|
Elle permet de manipuler des champs de valeurs avec des méthodes associées.
|
|
|
|
creer_heatmap va demander à l'utilisateur (fonction *input*) le format et le fichier, pour aiguiller vers l'une ou l'autre méthode de lecture, pour du binaire ou du grid ascii. Cette méthode s'exécute dès la création de l'instance, on pourrait faire autrement.
|
|
La méthode test_trace_matrice_valeurs trace le champ seul pour vérification, si besoin.
|
|
La méthode test_trace_matrice_valeurs trace le champ seul pour vérification, si besoin.
|
|
La méthode trace_champ construit une carte avec les valeurs de champ, en ajoutant tous les objets Shapely qui auront été définis en plus avec la méthode ajouter_shape.
|
|
La méthode trace_champ construit une carte avec les valeurs de champ, en ajoutant tous les objets Shapely qui auront été définis en plus avec la méthode ajouter_shape.
|
|
Ici, on a défini un "type" que l'on passe en argument, qui va simplement déterminer la couleur du tracé (bleu pour un réseau hydrographique...).
|
|
Ici, on a défini un "type" que l'on passe en argument, qui va simplement déterminer la couleur du tracé (bleu pour un réseau hydrographique...).
|
... | @@ -200,8 +202,6 @@ mon_champ.trace_champ(cmap, cbounds) |
... | @@ -200,8 +202,6 @@ mon_champ.trace_champ(cmap, cbounds) |
|
```
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Compléments techniques, si besoin
|
|
### Compléments techniques, si besoin
|
|
#### Lire un fichier de champ binaire et le tracer
|
|
#### Lire un fichier de champ binaire et le tracer
|
|
voir code.
|
|
voir code.
|
... | @@ -209,6 +209,4 @@ voir code. |
... | @@ -209,6 +209,4 @@ voir code. |
|
|
|
|
|
#### NB : Inclure sur une même figure des champs et des polygones issus de fichiers shape
|
|
#### NB : Inclure sur une même figure des champs et des polygones issus de fichiers shape
|
|
|
|
|
|
Cela s'obtient en passant un "ax" comme argument ou en retournant un "ax". Sera détaillé si besoin.
|
|
Cela s'obtient en passant un "ax" comme argument ou en retournant un "ax". Sera détaillé si besoin. |
|
|
|
\ No newline at end of file |
|
|
|
|