Suite

Comment appliquer un remplissage radial à un polygone de voronoi centré sur son point d'origine d'origine dans QGIS?

Comment appliquer un remplissage radial à un polygone de voronoi centré sur son point d'origine d'origine dans QGIS?


Je travaille avec une couche de points (aéroports d'OpenFlights) et je souhaite créer une carte de distance jusqu'à l'aéroport le plus proche.

J'ai pensé que je pourrais peut-être le faire en utilisant un remplissage radial sur les polygones de Voronoi.

J'ai créé les polygones de voronoi. Ceux-ci comprenaient les champs d'origine de la couche des aéroports, j'ai donc (lat, lon) de l'aéroport pour chaque polygone.

En ce qui concerne le style, j'ai essayé de créer un remplissage radial centré sur l'aéroport. Il est très facile de se centrer sur le centroïde, mais le centroïde est loin de l'aéroport dans la plupart des cas.

J'ai mis en place un remplissage radial avec des points de référence (0.5,0.5) et (1.0,1.0), mode : reflet.

Vous pouvez voir ici le résultat… comment puis-je le centrer pour que le point le plus lumineux du remplissage radial de chaque polygone s'aligne avec son aéroport ?

Il ne semble pas y avoir d'option pour définir une coordonnée de point central. L'option basée sur les données à droite du centroïde ne sert pas à configurer une coordonnée, c'est un champ binaire pour le réglage du centroïde.

Je pourrais essayer de calculer un décalage (entre le centroïde et l'aéroport), mais il n'y a pas d'options basées sur les données pour les champs de décalage, ils devraient donc être définis manuellement.

Le remplissage Shapeburst ne convient pas à cela (bien qu'il donne des résultats intéressants !)

J'ai également examiné le remplissage raster et svg, mais encore une fois, ceux-ci ne semblent offrir aucun moyen de définir la coordonnée centrale (je soupçonne qu'ils s'alignent à l'aide du cadre de délimitation)

  • Existe-t-il un moyen de le faire avec QGIS ? Est-ce que je néglige quelque chose ?

  • De plus, existe-t-il un moyen d'empêcher QGIS de mettre à l'échelle les dégradés pour s'adapter à la zone de délimitation? J'ai essayé de passer de "objet" à "fenêtre", mais les polygones disparaissent tous.


Dmitry a aidé à résoudre la première question - aligner les gradients sur les emplacements de l'aéroport

J'ai ajouté 6 nouveaux champs réels à mes polygones avec le calculateur de champs…

xmin -> x_min(bounds($geometry)) ymin -> y_min(bounds($geometry)) xmax -> x_max(bounds($geometry)) ymax -> y_max(bounds($geometry)) xoff -> (airportx - xmin)/(xmax-xmin) yoff -> 1 - ((aéroport - ymin)/(ymax-ymin))

J'ai ensuite utilisé les valeurs de xoff et yoff dans les champs x1 et y1 basés sur les données. Le cadre de délimitation semble être en bas à gauche, pas en haut à gauche, d'où le "1-" dans la dernière fonction.

Les résultats sont maintenant bien meilleurs…

Cela me laisse toujours le problème de la meilleure option pour x2 et y2 ; pour l'instant, j'ai réglé le deuxième point de contrôle sur (1,1). Besoin d'avoir une réflexion à ce sujet.

Étant donné que cela est lié à la zone de délimitation, je soupçonne que la réponse à la deuxième question (puis-je éviter que le dégradé ne soit mis à l'échelle) est « non » :)

Je vais donc probablement le faire en tant que script raster python gdal… a également l'avantage de pouvoir utiliser PostGIS pour calculer les distances sphéroïdes.


Il y a des champs X et Y pourpoint 1etpoint 2d'un dégradé.

Et ils peuvent être liés à des champs d'objet. Ils définissent des coordonnées relatives, en tant que fraction de la hauteur et de la largeur de la bbox. Donc, si vous pouviez calculer une distance entre l'aéroport et le centre de gravité de la cellule de Voronoy, vous pouvez calculer ces décalages fractionnaires.


Voir la vidéo: Basic QGIS Tutorial - Open some Shapefile layers and a Project