Comment styliser des points dans QGIS en fonction de plusieurs attributs

13

En essayant de trouver un moyen utile d'afficher les tremblements de terre, j'ai remarqué que ce n'est pas si facile à gérer.

J'aimerais pouvoir reconnaître la "Magnitude", la "Date" et la "Depth" à partir du style du point. Quelque chose comme:

  • taille: basée sur la magnitude
  • profondeur: couleur de base (ex. <15 rouge, 15-30 jaune,> 30 bleu)
  • date: intensité de la couleur comme ombrage de 100% couleur au blanc / ...

Existe-t-il un moyen de le faire sans définir des dizaines de règles?

Chris Pallasch
la source

Réponses:

14

Pourquoi ne pas utiliser l'étiquetage basé sur des règles? Vous pouvez alléger considérablement la tâche si vous utilisez des catégories pour plusieurs dégradés en fonction de vos données d'attribut. De mon point de vue, l'utilisation de catégories dans l'étiquetage basé sur des règles est l'un des avantages majeurs de QGIS.

Pour vos données (sans connaître la structure), je recommanderais le workflow suivant:

  • Créez un dégradé simple basé sur des règles pour vos valeurs de date via le stylet de point catégorisé ou gradué (style blanc ou grisâtre).
  • Ajustez la taille des points en cliquant sur "avancé" et "taille du champ à l'échelle". Sélectionnez ici la magnitude de vos points. Enregistrez le style résultant en tant que style SLD!
  • Accédez à l'étiquetage basé sur des règles, chargez votre SLD et ajoutez pour chaque point de données par clic droit une catégorie (ou plage) avec le dégradé de couleurs de votre choix pour votre profondeur et appliquez-le à chaque ensemble de règles.

Comme ça (vous pouvez aussi faire une catégorie sur les règles d'une catégorie ;-)): entrez la description de l'image ici

  • Ensuite, n'oubliez pas d'ajuster l'ordre de rendu et peut-être de contrôler la taille des points.

Je comprends que cette solution dépend d'un certain effort (clics de souris) sur votre site, mais au final une belle carte en vaut toujours la peine.

Courlis
la source
4

Mis à jour pour QGIS 2.8

En supposant des données comme celle-ci:

id | magnitude | date | depth
 1 |     4     | 1912 |  100
 2 |     3     | 1932 |   85

À l'aide d'un style défini par les données, définissez la taille à contrôler par le champ de magnitude.

Pour la couleur, qui est définie par la date et la profondeur, vous pouvez utiliser l'expression suivante

CASE 
  WHEN depth < 15 
       THEN color_hsl(1, 100, scale_linear(date, 1900, 2015, 100, 50)
  WHEN depth >= 15 AND depth < 30 
       THEN color_hsl(60, 100, scale_linear(date, 1900, 2015, 100, 50)
  WHEN depth >= 30 
       THEN color_hsl(240, 100, scale_linear(date, 1900, 2015, 100, 50)
END

Les "anciens" points de 1900 seront blancs hsl (x, x, 100) tandis que les nouveaux points seront plus colorés jusqu'à hsl (x, x, 50).

obscur
la source
3

L'autre option consiste à utiliser un assistant de taille disponible pour chacun des styles de couche de données. Supposons que vous ayez catégorisé vos données de points en fonction de la couleur à l'aide d'un certain attribut. Cliquez simplement avec le bouton droit sur chaque catégorie et sélectionnez Modifier la taille. Il devrait afficher une boîte de dialogue de taille. Cliquez ensuite sur le filtre d'expression, puis sélectionnez Assistant taille.

entrez la description de l'image ici

La boîte de dialogue de l'assistant de taille a la possibilité de choisir la colonne à dimensionner. Vous pouvez également choisir la méthode d'échelle que vous souhaitez utiliser pour mettre à l'échelle vos symboles, puis fournir la plage de tailles et la plage correspondante de vos valeurs de données. entrez la description de l'image ici Notez que vous devrez le faire pour chaque catégorie de vos données.

sherpas
la source
Je ne sais pas pourquoi cette réponse n'est pas plus votée - c'est ce que je voulais, et c'est de loin la plus rapide
Scott Staniewicz