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 przemyślenia nt. „SQLite i SpatiaLite w ArcGIS 10.2

  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.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *