Skip to main content

Geocodarea adreselor cu FME – de la datele sursă la cele destinație

By februarie 4, 2020ianuarie 13th, 2021ETL, FME Desktop, FME Server, Zrób to sam
geokodowanie FME

Am revenit cu un nou articol din seria „Cum se face în FME”. Vă prezentăm aici exerciții practice și exemple de lucru cu cele mai populare transformatoare din FME.
Veți afla cum FME gestionează geocodarea adreselor folosind un transformator Geocoder. FME permite codarea directă, în cazul în care coordonatele geografice sunt generate de la adrese, sau codificarea inversă, când informațiile despre adresă sunt obținute pe baza locației obiectelor din teren. În acest exercițiu ne vom concentra asupra geocodării directe.

Exercițiu

Ca date de intrare, vom utiliza lista unităților organizaționale din Cracovia în format CSV, descărcată de pe site-ul web al Buletinului de Informații Publice. În acest scenariu vom face geocodare pe baza atributului adreselor școlilor din Cracovia. Toate acestea pentru a obține coordonatele X și Y în sistemul WGS84. Vom folosi geocodarea folosind serviciul OpenStreetMap.

Pași

  1. Lansați FME Workbench
    Se deschide FME Workbench.
  2.  Creați un spațiu de lucru nou
    În secțiunea Creați spațiu de lucru, selectați opțiunea Nou
3. Adăugarea datelor de intrare

Vom adăuga un adaptor de citire – Reader. Setați formatul de intrare la CSV și selectați fișierul de date descărcat.

Înainte de confirmare vom introduce parametrii adaptorului de citire – Parametri …

Vom configura primul rând de date pentru a conține numele coloanelor și datele specifice pentru a începe cu al doilea rând:

În previzualizare (Preview), puteți vedea că diacriticele nu sunt afișate corect. Acest lucru se datorează tipului greșit de codificare. Dacă, după examinarea datelor din fereastra de previzualizare constatăm că totul este corect – săriți peste acest pas.
Pentru a schimba metoda de codificare la una care permite citirea corectă a caracterelor, deschideți fila Advanced. Apoi faceți clic pe setările de codare și setați parametrul de codificare a caracterelor la Unicode pe 8 biți (utf-8):
După modificarea setărilor vom vedea în previzualizarea datelor că se citesc corect. Apăsați butonul OK pentru a confirma parametrii setați și pentru a încărca datele.
4. Revizuirea datelor
Înainte de a începe transformarea, să examinăm datele disponibile. Pentru a face acest lucru, conectați Inspectorul la adaptorul care citește datele noastre sursă. Atunci trebuie să începem procesarea. Rețineți că datele noastre tabulare de intrare constau din mai multe coloane, adică numele unității, categoria / subcategoria, adresa sau numărul de telefon. Cel mai important atribut în această sarcină va fi adresa unității.

5. Selectarea datelor de intrare
Pentru a limita datele de intrare numai la adresele școlii, filtrați-le folosind transformatorul Tester. Deci, să adăugăm funcția Tester și să o conectăm la fișierul CSV de intrare. Să introducem parametrii transformatorului și să setăm atributul Categorie / Subcategorie să fie Educație / Școli primare.

6. Geocodarea

Să adăugăm un transformator Geocoder și să-l conectăm la portul trecut al transformatorului Tester. Deschideți parametrii noii funcții adăugate și setați serviciul la OpenStreetMap în secțiunea Geocoding Service. FME permite geocodarea pe baza a numeroase servicii diferite. Puteți citi despre acestea în documentația transformatorului. Vom efectua această sarcină pe OpenStreetMap deoarece este un serviciu open source care nu necesită un cont sau autorizație, cum ar fi în cazul Google Maps.

În secțiunea Geocoding Parameters, setați parametrul Mode la Forward și Street Address la atributul care conține adresa unității noastre:

Apoi vom valida atributele.


7. Aranjarea atributelor unui obiect

Adăugați AttributeManager la portul de ieșire al transformatorului Geocoder, care ne va permite să gestionăm toate atributele obiectelor. Să mergem la setările sale și să schimbăm numele atributelor _latitude și _longitude _ la „Latitudine” și, respectiv, „Longitudine”. În acest pas, eliminăm, de asemenea, pagina BIP și atributele de e-mail, precum și alte atribute care apar ca urmare a geocodării.

8. Modificarea parametrilor spațiului de lucru (Workspace)

Înainte de a rula scriptul, trebuie să faceți câteva modificări la parametrii spațiului de lucru. În fereastra de navigare, în fila Transformare, modificați setările astfel încât transformarea să fie efectuată atunci când obiectul apare în portul Rejected:
Navigator Window >> Translation >> Rejected Feature Handling >> Continue to Translation

În mod implicit, acest parametru este setat la Terminate Translation. Acest lucru face ca procesul să se oprească atunci când transformatorul Geocoder aruncă orice obiecte. Se întâmplă atunci când unele adrese conțin erori care nu sunt vizibile la prima vedere, de exemplu, un spațiu dublu sau un număr de casă scris greșit. Aceste caracteristici vor fi respinse de FME, dar numărul sau motivul respingerii variază în funcție de metoda de geocodare selectată. Puteți citi mai multe despre acest lucru în documentația serviciului selectat. Prin efectuarea acestui exercițiu pe datele din școlile din Cracovia, ieșirea funcției Geocoder va avea ca rezultat 37 de adrese respinse și 51 de adrese codificate corect.


9. Salvarea rezultatelor în format KML și rularea scriptului

Ultima etapă de transformare va fi salvarea adreselor codate corect în format KML. Deci, să adăugăm un adaptor de salvare în Google KML și să setăm numele și folderul fișierului țintă, precum și Feature Type Definition la Automatic. Să conectăm adaptorul de scriere la portul de transformare de ieșire AttributeManager. Când rulăm scriptul, să aruncăm o privire asupra rezultatelor finale:

Întregul script ar trebui să arate astfel:

Doriți să aflați mai multe despre analiza datelor spațiale cu FME?

Contactați-ne