Bedrijfs-, faciliteiten- of evenementadressen zijn coördinaten die gevonden willen worden, maar soms heeft data met zowel geometrie als goed gevormde adresattributen niet het voordeel gehad van de hoogwaardige geocodering beschikbaar in ArcGIS Online toegepast op records waarvan de geometrie een verbetering kan gebruiken.
Deze blog laat zien hoe je geocodering toepast op onbetrouwbare geometrieën binnen een dataset die in de loop van de tijd verandert zonder de kosten van terugkerende geocodering van eerder gegecodeerde records te maken. Het informatieproduct dat onderhouden moet worden is een hosted feature layer in ArcGIS Online of je eigen ArcGIS Enterprise portal.
Hier is het onderwerp, ongeveer 600K bedrijfslocaties geregistreerd bij het City of Los Angeles Office of Finance:
Bedrijven in het centrum van Los Angeles
Je zult begrijpen dat bedrijven kunnen openen, sluiten, verhuizen of van naam veranderen, en deze dataset wordt maandelijks vernieuwd om dit bij te houden. Bedrijven geven er doorgaans om dat ze gevonden kunnen worden, en wat we in de data zien zijn hoogwaardige adresvelden. Als we een nuttig ruimtelijk overzicht van de data willen behouden, zoals in een hosted feature layer, moeten we deze vernieuwingsfrequentie ondersteunen. Naast records die veranderen, moeten we ook alle records verbeteren die bij aanmaak geen correcte geometrie kregen.
Records zoals deze:
Null Island en Equal Archipelago
De rode stippen bevinden zich ofwel op Null Island of in een gebied dat ik Equal Archipelago ga noemen, wat punten betekent waar breedtegraad gelijk is aan lengtegraad. Samen met records met daadwerkelijk null geometrie (vrijheden werden genomen bij het benoemen van Null Island!) hebben we een gemakkelijk identificeerbare subset van bedrijfslocaties om te corrigeren, waarvan we zeker zijn dat we dat kunnen doen vanuit adresvelden in de data.
Hier is de subset van bedrijfslocaties die we moeten geocoderen:
Locaties om te geocoderen
Let op het aantal records - 94086. Omdat we ArcGIS Online zullen gebruiken voor de geocodering (vereist credits), moeten we rekening houden met de creditkosten voor geocodering, en gecodeerde doelrecords slechts één keer geocoderen tenzij ze van adres veranderen. Hier komt slimmer geocoderen om de hoek kijken, gecodeer records met onbetrouwbare geometrie of waar adresvelden veranderen, maar slechts één keer, niet bij elke update, terwijl je toch eventuele wijzigingen toepast op vertrouwde geometrie of niet-adresvelden.
Laten we beginnen.
De brondata bevindt zich in een open data portal waarvoor een reader beschikbaar is via pakketdownload. In de blogbijlage staat een workspace CreateLosAngelesBusinesses.fmw (vereist ArcGIS Pro 3.5+ plus ArcGIS Data Interoperability, of FME 2025+), de reader wordt geïnstalleerd als je de workspace bewerkt, net als het Geocoder-pakket. De workspace maakt een initiële feature class aan. Hier is die:
Maak bedrijfslocatie-featureclass aan
Dit is echter waar je de creditkosten van een initiële geocode niet kunt vermijden, maar let op dat we alleen records geocoderen met null geometrie of op Null Island of langs Equal Archipelago - deze hebben onbetrouwbare geometrie. Opmerkelijke verwerkingsstappen zijn het queryen van de backend-server om aparte verwerkingsstromen te genereren, het creëren van puntgeometrie uit stringwaarden zoals '(34.2817, -118.5361)' en het gebruik van batch forward geocoding voor snelheid.
De output feature class wordt gedeeld als een weblaag, wat het informatieproduct is dat we zullen onderhouden.
Hier wordt de verwerking interessanter, en hier is het, de workspace genaamd RefreshLosAngelesBusinesses.fmw in de blogdownload:
Vernieuw bedrijfsvermeldingen
De truc om niet opnieuw te geocoderen wat al gedaan is, is om bestaande geometrie samen te voegen met onbetrouwbare records uit de doel-feature layer, en om te samenvoegen op primaire sleutel en adresvelden. Op deze manier zal als een adres verandert het feature niet samenvoegen en opnieuw geocodeerd worden.
Hier zijn de FeatureMerger-eigenschappen gebruikt om geometrie op te halen van bekende locaties:
Alleen geometrie samenvoegen
Zodra eventuele geocodering voltooid is worden alle binnenkomende en bestaande features naar een ChangeDetector gestuurd, die een efficiënte minimale transactie genereert om de doel-feature service bij te werken. Voor de geocodering zul je merken dat ik ben overgestapt van batch naar rij-gebaseerde geocodering in de Geocoder transformer. Batch is sneller maar rij-gebaseerde geocodering kan betere kwaliteit leveren.
Hier is een maand aan bedrijfslocatieveranderingen voor Los Angeles (15 september 2025), in totaal 596402 locaties, waarvan 1688 bedrijfslocaties werden bijgewerkt, 4385 toegevoegd en 1707 verwijderd. Van de 94086 binnenkomende locaties met onbetrouwbare locatie moesten er slechts 1822 worden geocodeerd. Slechts 9 adressen konden niet worden gevonden en moeten handmatig worden gecontroleerd.
Een maand aan updates van bedrijfsadressen
Hier zijn de ChangeDetector-instellingen gebruikt om de changeset-transactie te berekenen. Als er attributen of geometrie veranderen voor een primaire sleutelwaarde, wordt er een schrijfrecord gegenereerd met INSERT-, UPDATE- of DELETE-transactietype.
ChangeDetector-instellingen
De blogbijlage bevat de spatial ETL tool fmw-bronbestanden om een initiële file geodatabase feature class van bedrijfslocaties te maken en op aanvraag een vernieuwing van de data uit te voeren. Er is ook één voor het vinden van onbetrouwbare records om te inspecteren voordat verdere verwerking plaatsvindt.
Plezier met slimmer geocoderen!