Meerdere specifieke postcodecases vanuit Excel koppelen aan postcode polygoon

Hallo allemaal,

Ik ben nieuw op dit forum dus hopelijk heb ik mijn vraag op de juiste plek toegevoegd.
Mijn vraag gaat over het koppelen van een Excel-bestand aan een Postcode polygoon laag.
Ik probeer het probleem zo goed mogelijk uit te leggen, hopelijk is er iemand die mij kan helpen.

De situatie:

  1. Ik heb een postcode laag waarin ik de koppeling wil aanbrengen
  2. Ik heb een Excel-bestand met herkomstpostcodes van respondenten (zie voorbeeld onderaan). Het komt voor dat meerdere respondenten dezelfde postcode hebben, bv postcode 1234.

Met het koppelen zou ik normaalgesproken alle respondenten behorend tot Ă©Ă©n postcode op een hoop gooien en voor postcode 1234 aangeven dat er in totaal 4 respondenten wonen. Daardoor hoeft er maar Ă©Ă©n koppeling worden gemaakt door QGIS.

Maar nu wil ik de verschillende respondenten met eenzelfde postcode juist gescheiden houden en koppelen als aparte cases, omdat elk van de cases nog weer specifieke informatie bevatten. Dus in het geval van het voorbeeld elk van de 4 respondenten gekoppeld aan de postcode 1234, zodat de specifieke gegevens per case behouden blijven.

Wanneer ik het rechtstreeks probeer te koppelen zoals de onderstaande tabel, koppelt hij maar 1 van de 4, waarschijnlijk gewoon de eerste die hij als match tegen komt. De overige 3 slaat hij over. Hetzelfde doet hij voor de andere postcodes. Ook daar wordt maar 1 gekoppeld.

Is er toch een manier om elke case apart te koppelen?
Want het uiteindelijke doel is om de statische postcodes om te zetten in punten binnen het postcodegebied. En dat elk van die punten dan het eigen respondent nr heeft met de bijbehorende specifieke informatie van die respondent.

Postcode Respondent nr
1234 1
1234 2
1234 3
1234 4
1235 5
1235 6
1235 7
1236 8
1236 9
1236 10

Hopelijk kan iemand mij helpen, alvast bedankt!

Hoi @Niiek,

Ken je de tool Attributen koppelen op veldwaarde? Daarmee kun je kiezen voor een 1-op-1 of 1-op-meer koppeling. Deze tool zit in de Toolbox Processing onder Vector Algemeen.

Hoi @Jonna,

Het is inmiddels gelukt! Dank voor je hulp. De gegevens zijn gekoppeld! Wat ik nu heb is het volgende wat ik graag wilde (screenshotje uit Excel):
image

De volgende stap die ik graag wil bereiken is om nu van deze specifieke cases punten te maken die binnen de betreffende postcodepolygoon vallen mét behoud van de gegevens.
Dus in postcodegebied 1234, wil ik 4 willekeurige punten plotten;
Punt 1 met de info Modaliteit Fiets, respondentnummer 1
Punt 2 met de info Modaliteit Auto, respondentnummer 2
Etc


Wanneer ik nu echter de gegevens om probeer te zetten in punten met de tool “willekeurige punten binnen polygoon”, neemt hij helaas niet de waardes mee. De enige waarde die het krijgt is een nummer van als hoeveelste punt hij op de kaart is geplot.

Weet jij toevallig hoe ik het toch voor elkaar kan krijgen om de cases om te zetten in punten met het behoud van de informatie?

Alvast bedankt voor je hulp!

Een “Random Marker Fill” met Point count = 1?

Als je geen daadwerkelijke locatie aangeeft, dan is een punt plotten misschien niet wenselijk. Zoals kaarten worden gelezen/gebruikt/geĂŻnterpreteerd is toch dat het punt de echte locatie is. Dus wil je dat mensen denken dat de respondent precies daar woont? Het is natuurlijk ook niet voor niets op postcodegebied onderzocht, dus globaal.

Als je een webkaart maakt, kun je misschien de puntjes steeds laten veranderen, maar op papier gaat dit niet


Bedankt voor je reactie weer :smiley:

Ik wil het gebruiken om modaliteitsalternatieven globaal in kaart te brengen op basis van de postcode. In dit voorbeeld postcode4, maar dat kan ook bijvoorbeeld in postcode6, het principe is volgens mij hezelfde. Vanwege privacy zijn er geen exacte locaties beschikbaar.
Vandaar dat voor mij de punten plotten op basis van postcode4 of 6 toch wel wenselijk is :smile: (als dat kan) het gaat niet om de exacte waarheid maar een globale indicatie.

Het gaat dus om het aantonen van globale modaliteitsalternatieven. Met wat natte vingerwerk (tenminste zo zie ik het voor me) kan ik door de verschillende cases gekoppelde tabelgegevens aan een postcode (met bv respondentnummer en huidige modaliteit) om te zetten in punten, deze over een actieradius leggen van bijvoorbeeld afstand tot een bushalte, of een station. En dan door het gekoppelde van respondentnummers terughalen voor welke respondentnummer het wel een alternatief zou kunnen zijn. En kijken naar hoe ze al dan niet al reizen. Doen ze dat bijvoorbeeld al met het OV?

Aha, dus het is alleen een kaart voor jezelf en niet ‘het grote publiek’.

De manier voor tonen op kaart van @raymondnijssen is heel geschikt, maar misschien dan weer niet voor jouw doel. Want je wilt er afstanden (actieradius ) mee maken? De random punten veranderen steeds van plaats dus daar kun je dit soort acties niet aan hangen.

Als je de tool ‘Willekeurige punten IN polygonen’ neemt, dan krijg je wel de attributen mee. Bij 'willekeurge punten BINNEN polygonen’niet. Is verwarrend twee tools met bijna dezelfde naam.

Dus eerst koppelen van de tabel aan de postcode en da van de gekoppelde polygonenlaag punten maken, dat zou het moeten doen.

Ik ben benieuwd of je zo je gewenste reultaat krijgt!

@raymondnijssen en @Jonna bedankt!
Helaas zie ik beide opties niet in mijn QGIS, of zijn die alleen beschikbaar in de nieuwste release van QGIS?
Heb inmiddels om een update gevraagd, dus ben benieuwd of de door jullie genoemde tools daarin zijn.

Ikzelf werk namelijk met versie QGIS 3.4


Onderstaand mijn toolbox, waarin ik wel “willekeurige punten binnen polygoon” zie, maar niet die “in polygoon”

image

Aha. Ik zat in 3.16, daar is alles beschikbaar. In 3.10 en 3.4 is de tool nog niet aanwezig.
Welke versie krijg je, toch wel de nieuwste dan? 3.22 is uit, dat wordt in februari de Long term release. Er is veel bijgekomen sinds 3.4.

m.i. doe je het verkeerdom. Model-technisch wil je dat elke respondent een locatie krijgt, maar die locatie mag niet al te nauwkeurig zijn. Je kunt dus beter de polygonen aan de respondenten hangen. Dat betekent wel dat je meerdere vlakken over elkaar heen krijgt, maar het lost wel je probleem op. En voor je analyse kun je dan per respondent werken.

Dat gezegd hebbende: Twee puntjes van aandacht zijn de volgende:
Realiseer je wel dat een postcode eigenlijk geen vlak is maar een verzameling punten.
En ten tweede: voor het berekenen van afstanden, is het riskant om eenvoudigweg de afstand tussen twee postcodevlakken te berekenen. Als ik, wonend in Hoorn, bij bijvoorbeeld een winkel-zoek-functie de afstand van 50km invoer, gebeurt het heel vaak dat ik resultaten terug krijg uit Almere bijvoorbeeld. En ik kan je verzekeren dat de afstand Hoorn-Almere meer is dan 50km
 Dat soort zaken ontstaat juist uit het feit dat een postcode geen vlak is, maar wel zo word geinterpreteerd. En daardoor geen rekening houd met bijvoorbeeld een kanaal, rivier of snelweg die ergens tussen ligt, waardoor je flink om moet rijden.

@Niiek als het enkel gaat om het visualiseren van meerdere punten die dezelfde locatie hebben (omdat ze aan hetzelfde postcode gebied zijn gekoppeld), is wellicht de Verplaatsing punt renderer een optie. Hiermee kan je punten die op dezelfde locatie liggen op o.a. een raster renderen (er zijn meer opties). Zie ook de QGIS doc.

In het volgende screenshot heb ik voor elke postcode een willekeurig aantal (van1 t/m10) centroide punten
gegeneerd (zie code hier) en deze middels de point displacement renderer gevisualiseerd.

3 likes

Ja ik zou het ook anders aanpakken. Om te beginnen heb je helemaal geen postcodevlakken nodig maar punten. Ik maak die meestal door de gemiddelde x en y te nemen van alle adressen met een bepaalde postcode. Maar als je al vlakken hebt, kun je eerst de centroides (of beter pole-of-inaccessibillity) berekenen. Daarna hang je die puntjes aan je data en ga je rekenen. En voor de afstand kun je ook een routing engine gebruiken, die de route bepaalt over de wegen (of fietspaden) en niet linea recta. Maar dat is weer een andere uitdaging.

Bedankt allemaal, ik ga het uitproberen!

1 like