Darstellung von Bodenschätzungsflächen nach Alter

Aus kvwmap
Version vom 10. April 2013, 14:07 Uhr von Mharms (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

--Mario Harms 15:07, 10. Apr 2013 (CEST)
Im Rahmen meiner Ausbildung hatte ich die Aufgabe die Bodenschätzungsergebnisse in kvwmap zu visualiserien.
Die Ergebnisse habe ich bereits am 33. Anwendertreffen in Bad Doberan präsentiert und stelle dazu eine kleine Dokumentation zur Verfügung.

Die Bodenschätzungsflächen sollen in kvwmap als neues Layer eingefügt werden und dann enstprechend Alter eingefärbt werden.
Laut Aufgabenstellung sollte es dann so kategorisiert werden:
Älter als 5 Jahre: Braun
Älter als 4 Jahre: sehr dunkles Grün
Älter als 3 Jahre: Dunkelgrün
Älter als 2 Jahre: Grün
Älter als 1 Jahr: Hellgrün
Jünger als 1 Jahr: sehr helles Grün


Ziel der Sache ist es den Fortschritt der digitalen Bodenschätzung zu visualieren. Man kann so schnell sehen welche Flächen bereits digital vorliegen und wann sie digitalisert wurden.


Über folgende Abfrage erhält man die entsprechenden Flächen der Folie 42 mit der Objektnummer 222 (Ackerland) und 223 (Grünland):

SELECT
  alkobj_e_fla.oid,
  alkobjekte.objnr, 
  alkobjekte.objart, 
  alkobjekte.folie, 
  alkobjekte.entstehung,  
  date_part('year'::text, date(now())) – date_part('year'::text, alkobjekte.entstehung) AS diff, 
  alkobj_e_fla.the_geom

FROM 
  alkobjekte, 
  alkobj_e_fla

WHERE 
  alkobjekte.objnr::text = alkobj_e_fla.objnr::text AND 
  alkobjekte.folie::integer = 42 AND 
  (alkobjekte.objart = ANY (ARRAY[222, 223]))


Im Data-Feld im Layereditor werden die Spalten objnr, objart, folie und enstehung nicht benötigt und es sieht entsprechend so aus:

the_geom from (
SELECT 
  alkobj_e_fla.oid, 
  date_part('year'::text, date(now())) - date_part('year'::text, alkobjekte.entstehung) AS diff, 
  alkobj_e_fla.the_geom
FROM 
  alkobjekte, 
  alkobj_e_fla
WHERE 
  alkobjekte.objnr::text = alkobj_e_fla.objnr::text AND 
  alkobjekte.folie::integer = 42 AND 
  (alkobjekte.objart = ANY (ARRAY[222, 223]))
) as foo using unique oid using srid=2398



Für die Entsprechenden Klassen sehen die Einträge folgendermaßen aus:

Älter als 5 Jahre:

('[diff]' >= '5')


Älter als 4 Jahre:

('[diff]' = '4')


Älter als 3 Jahre:

('[diff]' = '3')


Älter als 2 Jahre:

('[diff]' = '2')


Älter als 1 Jahre:

('[diff]' = '1')


Jünger als 1 Jahr:

('[diff]' <= '1')