poniedziałek, 4 listopada 2013

SQLite i SpatiaLite w ArcGIS 10.2

Od wersji 10.2 ArcGIS wspiera SQLite, ciekawy silnik SQL, który daje możliwość używania bazy danych bez konieczności uruchamiania osobnego procesu RDBMS. Nie jest to oczywiście w pełni funkcjonalne wsparcie porównywalne do Oracle, czy PostgreSQL, niemniej jednak daje nowe możliwości, szczególnie jeśli chodzi o współpracę w zakresie wymiany danych z QGIS (i pozostałym oprogramowaniem wspierającym SpatiaLite: FME, MapInfo i inne).



Mimo, że wsparcie jest obecne to nie znajdziemy dedykowanych narzędzi w GUI, dostępna jest jednak nowa funkcja ArcPy: CreateSQLiteDatabase, która pozwala na utworzenie nowej bazy (a właściwie pliku) SQLite z określonym typem przechowywanej geometrii. Mogą to być:




  • ST_GEOMETRY - typ domyślny, stosowany w ArcGIS

  • SPATIALITE - rozszerzenie dla SQLite umożliwiające przechowanie danych wektorowych


Create SQLite db

Możliwe jest również dodanie typu ST_GEOMETRY do istniejącej już bazy SQLite (opisano to w helpie do ArcGIS).


W porządku, baza już jest, jak się do niej podłączyć? Wbrew pozorom nie korzystamy z Database connections lecz postępujemy podobnie jak z geobazą plikową - przechodzimy do katalogu gdzie znajduje się baza SQLite i możemy ją otworzyć:


sqlitedb


W bazie SQLite możemy zarówno utworzyć nowe dane (feature class, table, view) lub je zaimportować z dowolnego źródła obsługiwanego przez ArcGIS. Ładowanie danych jest analogiczne do innych operacji tego typu:


sqlitedb_import


a w wyniku mamy załadowane dane wektorowe do SQLite / SpatiaLite:


sqlitedb_vector


Co ciekawe, teraz te same dane możemy podejrzeć i edytować w QGIS:


qgis_sqlite_add


Dodawanie nowego poligonu w QGIS:


qgis_sqlite_edit


... i podgląd w ArcGIS:


qgis_sqlite_edit_in_arcgis

Niestety, jak to zwykle bywa, jest i łyżka dziegciu w tej beczce miodu: w aktualnej wersji ArcGIS, tj. 10.2, edycja danych zawartych w SQLite nie jest możliwa... (taka nieco niedokończona implementacja, nieprawdaż? ;) ) Pozostaje podgląd danych, tworzenie analiz i map (albo edycja w natywnym dla ArcGIS formacie (FGDB, shapefile, itp) i eksport całej warstwy do SQLite po aktualizacji danych...).


Jakie to może mieć jeszcze zastosowania? Podziel się swoimi uwagami w komentarzu poniżej, zapraszam :)


PS: Z uwagi na to, że SQLite nie wspiera typów danych w taki sam sposób jak większość DBMS, (m.in. posiada kilka typów w których można przechowywać różne rodzaje danych oraz nie zawsze jest konieczne definiowanie typu pola - SQLite przeszukuje kolumnę i na podstawie odnalezionych wartości przypisuje typ) trzeba zwrócić uwagę jakiego typu dane zostają zapisane w określone pola ponieważ ArcGIS zakłada, że typ danych zawartych a polu będzie całkowicie odpowiadał typowi zdeklarowanemu w definicji tabeli. Lista typów wspieranych przez ArcGIS znajduje się tutaj.


4 komentarze:

  1. Wniosek z tego taki, ze Esri przygotowuje grunt pod cos nowego. Pewnie w wersji 11 bedzie jakis wodotrysk, a to co teraz widzimy to beta testy wykonywane przez uzytkownikow ;)
    Bardzo ciekawy artykul, zupelnie to przeoczylem.

    OdpowiedzUsuń
  2. […] wątek poruszony we wpisie SQLite i SpatiaLite w ArcGIS 10.2 chciałbym dziś wspomnieć o wsparciu dla OGC (Open Geospatial Consortium) GeoPackage w […]

    OdpowiedzUsuń
  3. […] wątek poruszony we wpisie SQLite i SpatiaLite w ArcGIS 10.2 chciałbym dziś wspomnieć o wsparciu dla OGC (Open Geospatial Consortium) GeoPackage w […]

    OdpowiedzUsuń
  4. […] posiadacie Arcgisa w wersji 10.2 tutaj możecie znaleźć informację jak podłączyć bazę spatialite do tego […]

    OdpowiedzUsuń