Hej
Jeg skal forsøge at beregne længden på nogle ruter. Det skal være den samlede længde for de forskellige ruter. Jeg ved hvordan jeg gør det med en simpel SQL i MapInfo, hvor jeg kan summere på objekternes længde og gruppere på en attribut (rutenavnet), men jeg kan ikke finde ud af at gøre det i QGIS.
Spatial Query kræver at man har et lag med polygoner som udgør afgræsningen for ruterne, og Feltberegneren beregner for hver enkelt linjestykke, det giver en del ekstra arbejde bagefter hvis jeg skal sidde og lægge tallene sammen for 360 objekter.
Der må være et eller andet smart værktøj jeg overser.
mvh Jeanne
Videoer fra brugermødet d. 8 marts kan nu ses her[.
Beregning af længde af linjer, og gruppering ud fra en attribut Topic is solved
-
- Indlæg: 12
- Tilmeldt: tirs 23. maj 2017 09:02
- Geografisk sted: Allerød Kommune
-
- Indlæg: 24
- Tilmeldt: ons 2. mar 2016 09:34
- Geografisk sted: København
Re: Beregning af længde af linjer, og gruppering ud fra en attribut
Hej Jeanne,
Her er et eksempel hvor summen af ruterne summeres i feltet 'sum' for hver elev (f_id):
Håber det kan bruges.
Mvh. Mie
Her er et eksempel hvor summen af ruterne summeres i feltet 'sum' for hver elev (f_id):
Håber det kan bruges.
Mvh. Mie
Du har ikke de nødvendige tilladelser til at se vedhæftede filer i dette indlæg.
0 x
Mie Winstrup
Septima
Septima
-
- Indlæg: 12
- Tilmeldt: tirs 23. maj 2017 09:02
- Geografisk sted: Allerød Kommune
Re: Beregning af længde af linjer, og gruppering ud fra en attribut
Hej Mie
Ja, det er mulighed, bare ikke den meget simple med et tryk og videre. Jeg har ikke længden på hvert enkelt linjestykke som attribut, så jeg skal først regne længde ud, og derefter summere det. Men hvis det er den eneste måde at gøre det på, så er det jo sådan det er.
mvh Jeanne
Ja, det er mulighed, bare ikke den meget simple med et tryk og videre. Jeg har ikke længden på hvert enkelt linjestykke som attribut, så jeg skal først regne længde ud, og derefter summere det. Men hvis det er den eneste måde at gøre det på, så er det jo sådan det er.
mvh Jeanne

0 x
- Danny Morck
- Site Admin
- Indlæg: 82
- Tilmeldt: man 29. feb 2016 22:35
- Geografisk sted: Herlev
- Kontakt:
Re: Beregning af længde af linjer, og gruppering ud fra en attribut
Jeanne MHJ skrev:Hej Mie
Ja, det er mulighed, bare ikke den meget simple med et tryk og videre. Jeg har ikke længden på hvert enkelt linjestykke som attribut, så jeg skal først regne længde ud, og derefter summere det. Men hvis det er den eneste måde at gøre det på, så er det jo sådan det er.
mvh Jeanne
Men hvert liniestykke regner du vel bare ud igen vha "§length" funktionen?...og smider det ind i tabellen og så har du det.
0 x
Bestyrelsesmedlem
QGIS Brugergruppe Danmark
Natur, IT & GIS, Egedal Kommune
QGIS Brugergruppe Danmark
Natur, IT & GIS, Egedal Kommune
-
- Indlæg: 12
- Tilmeldt: tirs 23. maj 2017 09:02
- Geografisk sted: Allerød Kommune
Re: Beregning af længde af linjer, og gruppering ud fra en attribut
Ja, lige præcis.
Det er bare to step, i stedet for MapInfos et step. Der mangler en god SQL query til QGIS
mvh Jeanne
Det er bare to step, i stedet for MapInfos et step. Der mangler en god SQL query til QGIS
mvh Jeanne

0 x
-
- Indlæg: 22
- Tilmeldt: tirs 8. mar 2016 10:35
- Geografisk sted: Egedal kommune
Re: Beregning af længde af linjer, og gruppering ud fra en attribut
Hvis dine data ligger i en database, så er der en sql-forespørgsel-opbygger, som ligner fuldstændig den fra MapInfo.......Det kræver selvfølgelig, at de data du arbejder på ligger i en database.
Man kan også bruge Python consollen i QGIS til den slags. Det er muligvis lidt avanceret, men det er rigtig sjovt at lege med
Ellers kan du bruge plugin'et Group Stats. Det er rigtig godt til den slags analyser.
Man kan også bruge Python consollen i QGIS til den slags. Det er muligvis lidt avanceret, men det er rigtig sjovt at lege med

Ellers kan du bruge plugin'et Group Stats. Det er rigtig godt til den slags analyser.
0 x
Daníel Örn
Egedal kommune
Egedal kommune
-
- Indlæg: 22
- Tilmeldt: tirs 8. mar 2016 10:35
- Geografisk sted: Egedal kommune
Re: Beregning af længde af linjer, og gruppering ud fra en attribut Topic is solved
Jeg kunne ikke lade være med at tjekke, om jeg ikke kunne finde ud af det i python consollen 
Man kan køre det her i python consollen. Man skal bare huske at ændre kolonnenavnet og kolonnens index. Det virkede i hvert fald her hos mig

Man kan køre det her i python consollen. Man skal bare huske at ændre kolonnenavnet og kolonnens index. Det virkede i hvert fald her hos mig

Kode: Vælg alt
# Line_lyr er det lag, som er valgt i lagvinduet
line_lyr = iface.activeLayer()
# Erstat 'vejstistatus' med navnet paa den kolonne, som skal grupperes
idx = line_lyr.fieldNameIndex('vejstistatus')
unique_values = line_lyr.uniqueValues(idx)
#laver en dictionary med unikke vaerdier fra den valgte kolonne og saetter vaerdien til 0
length_dict = {k: 0 for k in unique_values }
#finder alle objekter i det aktive lag
features = line_lyr.getFeatures()
# koerer igennem alle objekter og finder geometriens laengde og laegger den til det rigtige sted i length_dict
for f in features:
type = f.attributes()[1] # Her skal man vaelge det rigtige index for kolonnen. Det starter med 0, saa kolonne nr to har index 1
for k, v in length_dict.items():
if k == type:
length_dict[k] = v + f.geometry().length()
# Printer resultaterne ud i python consollen i qgis, saa man kan se reulstaterne
for k, v in length_dict.items():
print k, ': ', v
0 x
Daníel Örn
Egedal kommune
Egedal kommune
-
- Indlæg: 12
- Tilmeldt: tirs 23. maj 2017 09:02
- Geografisk sted: Allerød Kommune
Social Media
Hvem er online
Brugere der læser dette forum: Ingen og 1 gæst