Published by Bolesław Maliszewski on 09 lipca 2008

Sprzedawcy łopat c.d.

“Dopóki na świecie są ludzie, którzy wierzą, że w nowym Klondike odkryto złoto i warto tam jechać, dopóty jest zajęcie dla dostawców łopat. Nie naszą rzeczą jest zgłębiać czy tam, gdzie kopią jest złoto; nie naszą rzeczą jest ponosić ryzyko ich działalności. Jeśli zarzucają nam, że nie znamy się na wydobywaniu kruszcu (czyli tzw. biznesie), odpowiadamy im, że za to znakomicie znamy sie na łopatach. Dostarczamy je w każdej ilości, w każdym rodzaju i w każdym miejscu - zgodnie z zamówieniem, za rozsądne pieniądze i bez ociągania.”

Jakub Chabik “Sprzedawcy Łopat”, Computerworld 30 Czerwca 2008

Published by Bolesław Maliszewski on 08 lipca 2008

Sprzedawcy łopat…

“Raz na kilkanaście lat wybucha gorączka złota. Tysiące skuszone łatwym zarobkiem rzucają wszystko i wyruszają do kolejnego, nowego Klondike, by szybko się dorobić. Historia uczy, że poszukiwaczy na miejscu czeka mnóstwo pułapek i zmienne szczęście. Nieliczni stają się bogaczami, Reszta kończy jako nędzarze albo wraca do domu.

Jedyni, którzy na gorączce zawsze się dorobią, to dostawcy łopat…”

Jakub Chabik “Sprzedawcy Łopat”, Computerworld 30 Czerwca 2008

Published by Bolesław Maliszewski on 23 czerwca 2008

Projektowanie geobazy ESRI ArcGIS cz. 4 - sieć geometryczna

Spędzając niemiłe chwile w podróży ekspresem Warszawa - Zielona Góra postaram się skupić na kolejnym elemencie geobazy - sieci geometrycznej.

Na początek jak zwykle parę słów teorii. Otóż sieć geometryczna składa się z punktów i linii i opisuje ich wzajemne połączenia. Generalnie w geobazie możemy zdefiniować jakie obiekty oraz jakie ich podtypy należą do sieci geometrycznej. W praktyce obiekty geograficznie leżace w tym samym punkcie lub w przypadku linii - mające jeden z końców w tym samym punkcie są uznawane za połączone. Sieć ta pozwala dzięki informacji o połączeniu na wykonanie różnorakich analiz takich jak: “znajdź obiekty powiązane”, “znajdź najkrótszą drogę” oraz różnego rodzaju analizy rozpływów.

W praktyce w geobazie powstaje klasa sieci geometrycznej oraz klasa obiektów punktowych o takiej samej nazwie lecz z końcówką “_junctions”. Dodatkowa klasa przechowuje informacje o punktach połączenia obiektów.

Aby utworzyć sieć geometyczną należy z poziomu eksploratora obiektów w naszym projekcie w MS VISIO zduplikować klasę GeometricNetwork, osadzić ją na arkuszu projektu na zakładce “obiekty” a następnie zmienić jej nazwę we właściwościach. W naszym przypadku będzie to sieć o nazwie “Wodociągi”.

Wodociagi

Proszę zwrócić uwagę na stereotyp oraz atrybut typu “esriNetworkType”. Na szkicu łączymy klasę sieci z klasami obiektów, które mają ją tworzyć za pomoca narzędzia binary asociation. W tym przypadku są to klasy HYDRANT oraz ODC_KAN.

siec

 Następnie tworzymy nową zakładkę “Połączenia”.  Na zakładce tej definiujemy dokładnie reguły połączenia. Za pomocą narzędzia N-ary Association  łączymy podtypy obu klas oraz dodatkowo określamy domyślne połączenie do klasy GenericJunctionST. We właściwościac połaczenia N-ary definiujemy ilość połączeń - w tym przypadku 4. Proszę pamiętać o tym aby jedno z połączeń pojawiąjące się w atrybutach miało stereotyp “Default”. Obiekty łączym jak na górczej części poniższego schematu. Proszę zwrócić uwagę na połączenie domyślne go klasy Genericjunction oraz dwa połączenia do klasy ODC_KAN. Ta ostatnia je dwukrotnie połączona, aby umozliwić systemowi bezpośrednie połączenie dwóch obiektów o tym samym typie.

Na poniższym schemacie dodatkowo definiujemy, iż klasa ODC_KAN łączy się z klasą HYDRANT w relacji 0..2 podobnie jak w przypadku hydranta. Oznacza to, iż określony Odcinek kanalizacji może mieć tylko maksymalnie dwa końce.

Uwaga - w przypadku obu relacji ustawiamy stereotym relacji na “ConnRule”.

reguly

 Podobnie jak poprzednio eksportujemy projekt do formatu XMI a następnie importujemy za pomocą ArcCatalogu.

obiekty

Zanim wciśniemy przycisk next we właściwościach Feature Datasetu Wodociągi ustawiamy układ odniesienia. W tym przypadku jest to popularny PUWG-92. Proszę mieć świadomość, iż najdokładniejszym obiecnie propagowanym układem odniesienia jest PUWG 2000, 92 jest mniej również dobry, ale mniej dokładny.

uklad

Po zaimportowaniu struktury, drzewo obieków w geobazie powinno wyglądać następująco:

drzewo
Pokaż cały obraz

Published by Bolesław Maliszewski on 19 czerwca 2008

WARS wita was!

Jadę ekpresem  ”Lubuszanin” relacji Zielona Góra - Warszawa. Sześć godzin jazdy, pomyślałem że popracuję w międzyczasie. Laptop jest, internet przez GPRS jest. W wagonie pierwszej klasy są dwa gniazdka 230V w korytarzu, ale akurat wylosowałem przedział o jeden za daleko. Przedłużacza nie mam :) (ale następnym razem zabiorę).  Poranek, organizm domaga się kawy, a laptop zasilacza. Nie czekając długo zabrałem pod pachę lapa i w drogę do WARSU na kawę. Na miejscu zastałem BRAK GNIAZDKA 230V, a na scianie przywitał mnie znak:

 Wars

No cóż, baterii pozostało mi na 1:12h. Do Europy chyba nam jeszcze bardzo daleko…. O ochydnej kawie sypanej, bo ekspresu nie uświadczyłem nie wspomnę…. Pozostaje mi jedynie zanucić utwór Wałów Jagielońskich “Wars wita was”…

P.S. W klopie odkryłem dodatkowe gniazdko, ale tego rozwiązanie nie biorę pod uwage ;).

Published by Bolesław Maliszewski on 19 czerwca 2008

Mapa kompetencji - czyli jak być lepszym

Nie od razu Rzym zbudowano, ale może warto się zastanowić na sobą i wyznaczyć sobie właściwy kierunek rozwoju… Poniżej załączam fragment artykułu z Magazynu CIO.

Mapa kompetancji

Znajomość rynku - wiedza o rynku na którym działa firma, w tym o konkurencji, dostawcach, bazie klientów i otoczeniu prywatnym. Najlepsi zdobywają głęboką wiedzę o rynku, pozwalającą im dostrzec sposoby na zmiany krajobrazu danej branży.

Koncentracja na Kliencie - obsługa klientów i budowanie z nimi wspólnej relacji. Najlepsi dbają o trwałe więz z klientami zewnętrznymi, poświęcając się staraniom o trwałe obustronne korzyści z tych relacji.

Orintacja rynkowa - identyfikacja i wykorzystywanie możliwości biznesowych, wykorzystywanie szans na zwiększeniezysków i przychodów. Najlepsi zmieniają zasady gry, budując trwałą przewagę konkurencyjną.

Orinetacja strategiczna - Zdolność perspektywicznego, całościowego i nieszblonowego myślenia. Objemuje trzy wymiary: świadomość biznesową, krytyczną analizę i łączenie informacji oraz umiejętność tworzenia planu działania. Najlepsi tworzą działające w założeniach środowiskowych  strategie dla całej firmy.

Przewodzenie zmianom - przekształcanie i dopasowywanie organizacji w celu zainicjowania rozwoju w nowym kierunku. Dotycz to całej organizacji. Najlepsi tworzą kulturę zmian i koordynują ją w skomplikowanych organizacjach.

Współpraca i wpływ - efektywna współpraca i wpływanie na pracowników w innych działach w celu wywarcia pozytywnego efektu przekładającego się na wyniki biznesowe. Najlepsi budują relacje, które służą transformacji w celu rozwoju organizacji.

Orientacja na wyniki - Nacisk na poprawianie wyników biznesowych. Najlepsi zmieniają procesy i tworzą nowe modele biznsowe.

Rozwój ludzi i organizacji - Ciągłe rozwijanie możliwości pracowników i całej organizacji oraz satysfakcja z wpływu lub zmiany życia i kariery innych. Najlepsi systematycznie budują ogólna siłę graczy w zespole, którym jest ogranizacja.

Przywództwo zespołowe - Koncentracja na pracy zespołowej, dopasowywanie ludzi i zespołów oraz tworzenie efektywnych zespołów w bezpośrednim otoczeniu. Możę dotyczć to zespołów projektowych lub łączących działy, posiadających lub nie  posiadających formalnego lidera. Najlepsi tworzą niezależne zespoły, które sprawnie funkcjonują, nie tracąc w złożonym otoczeniu.

Znajomość funkcji - kierownie własnym działem przekładające się na doskonałe wyniki operacyjne. Najlepsi kierują biznesem, wykorzystując znajomość działu tylko wtedy, kiedy jest niezbędna. Sami uwolnili się już od zajmującego czas osobistego zarządzania działem.

Carry Mathews “Zostań CEO”, Magazyn CIO Maj ‘08.

Published by Bolesław Maliszewski on 15 czerwca 2008

Projektowanie geobazy ESRI ArcGIS cz. 3 - więcej obiektów

W dzisiejszym artykule zajmiemy się dalszym rozwojem naszego projektu GISowego. Dziś zaprezentuję sposób na dodanie nowych obiektów o różnychwłaściwościowach do projektowanej geobazy. Nasza geobaza zacznie bardziej przypominać profesjonalny projekt.

Feature dataset
Ponieważ już wcześniej szczegółowo opisałem w jaki sposób tworzyć obiekty, teraz nie będziemy już skupiać się na detalach. W pierwszej kolejności tworzymy nowy pakiet w drzewie obiektów. Pakiet nazywamy “Wodociągi”. Następnie przenosimy pakiet z drzewka na schemat, a we jego ciach ustawiamy stereotyp na “FeatureDataset”. Efekt powinien być taki jak na załączonym niżej obrazku.

Z logicznego punktu widzeniaFeature dataset jest formą kontenera, w którym przechowywane obiekty stanowiące swego rodzaju całość. Osobne datasety utworzymy dla obiektów, które nie łączą się ze sobą ani bezpośrednio ani pośrednio. W naszym przypadku nowe obiekty jakimi są hydrant oraz odcinek wodociągu umieścimy w datasecie wodociągi, ponieważ wiemy, że w rzeczywistościsą one połączone. Teraz gdy spróbowalibyśmy dodatkowo zamodelować fragment sieci obiektów energetycznych, telekomunikacyjnych lub innych, to umieścilibyśmy je w osobynych datasetach. Jest jest jedna ważna rzecz, którą powinniśmy wiedzieć o datasetach. Umieszczając obiekty w konkretnym datasecie - skazujemy je ten sam układ odniesienia. Co za tym idzie trzeba pamiętać, że pozyskując obiekty z różnych źródeł (o różnych układach odniesienia), trzeba dokonać konwersji ich pozycji. Szerzej o samych układach odniesienia stosowanych w Polsce porozmawiamy przy okazji innego artykułu. Jest jeszcze jeden powód utworzenia dataseta. Otóż, tylko obiekty będące w obrębie dataseta można łączyć w sieć geometryczną (ale o niej opowiem w następnym artykule).

dataset

 W datasecie “Wodociągi” tworzymydwie noweklasy: Hydrant (HYDRANT) oraz Odcinek wodociągu (ODC_WOD). Klasa HYDRANT będzie obiektem punktowym i we właściwościachgeomerii będzi miała ustawioną stałą esriGeometryPoint natomiasc klasa ODC_WOD będzie obiektem linowym definiowanym przez stałą esriGeometryPolyline.  Jeśli poniższy zrzut ucięty (zależnie od rozdzielczości ekranu), można go objeżeć klikając link poniżej obrazka.


Pokaż cały obraz

Jak widać na zrzucie, każda z klas ma swój podtyp, który jest identyfikowany numerem. Proszę zwrócić uwagę, iż nowoutworzone klasy w przeciwieństwie do budynku, niedzidziczą poklasie Feature. Klasa Hydrant dziedziczy po SimpleJunction, a klasa odcinka po SimpleEdge. Takie działanie jest podyktowane tym, iż w przyszłości obiekty te będą połączone siecią geometryczną, do której budynek jako wielokąt nie może należeć. Klasy te znajdziemy bez problemu w eksploratorze klas.

Tabele paszportu
Kolejnym krokiem będzie utworzenie tabel, które będą zawierać paszporty obiektów. Każdy obiekt będzie składać się z tabeli obiektu zawierającej część graficzną oraz paszportu zawierającego dodatkowe dane opisowe. Z punktu widzenia bazy danych, obiektypołączmy poprzez kolumnę ID będącą kluczem głównym w każdej z tabel. Z punktu widzenia geobazy, klasa obiektu zostaniepołączona z klasą paszportu za pomocą relacji. Szerzejo relacjach opowiem w jednym z kolejnychartykułów. Teraz skupimy się jedynie na właściwym modelu klas.

Tabele tworzymy podobnie jak klasy obiektów. tabele mogą również posiadać podtypy i konieczne jest zamodelowanie podtypu, jeśli tablica ma stanowić źródło dodatkowych danycho obiektcie - paszport. Jedyną różnicą jest fakt, iż tabela dziedziczy po klasie Object.Dodatkowo, co widać na poniższym schemacie, każda tabela zyskuje w wyniku dziedziczenia po Objectpole OBJECTID. Jest to systemowe pole unikalne w obrębie tabeli. Nie zalecam jednak stosowania tego pola jako łącznika między innymi tabelami, gdyż w wyniku migracji danych, wartość tego pola może ulec zmianie.

Jak widać naponiższym zrzucie, zostały utworzone trzy tabele, odpowiedno dlakażdego z obiektówwraz z przykładowym polem opisującym ten obiekt (np. BUDYNEK_DANE.Wysokosc).

dane
Pokaż  cały obraz

Porządki
Ponieważ nasz projekt zaczał się rozrastać, konieczne jest właściwe pogrupowanie utworzonych klas oraz schematów, tak aby były one czytelne i łatwe do znalezienia i modufikacji. W tym celu utworzyliśmy osobny schemat dla obiektów graficznych o nazwie “obiekty” oraz schenat “tabele” na którym umieściliśmy schemat tabel. Na systemowym schemacie “Workspace” utworzyliśmy Feature Dataset “Wodociagi”. Na poniższym zrzucie widać przykładowe rozmieszczenie obiektów.

drzewo

Published by Bolesław Maliszewski on 31 maja 2008

Projektowanie geobazy ESRI ArcGIS cz. 2 - Subtypes

Odrobina teorii

Witam w kolejnym artykule z cyklu “Projektowanie geobazy ESRI”. Dziś postaram się podjąć temat podtypów (ang. subtypes).

Do czego można użyć podtypu? Otóż, w systemach GIS występuje duża ilość różnych obiektów na mapie, które są ze sobą w różnych relacjach. Często zachodzi konieczność identyfikacji (np. z poziomu kodu aplikacji), z jakim obiektem mamy do czynienia. Proszę sobie wyobrazić listę obiektów w oknie aplikacji. Na każdym obiekcie z listy za pomoca funkcji z menu kontekstowego można wykonać jakąś operację. Naturalne jest, że na różnych obiektach wykonujemy różne od siebie operacje. To właśnie za pomocą identyfikacji podtypu, będziemy wiedzieli jaki to obiekt i co można z nim zrobić. Ponadto relacje w systemie ESRI są zakładane pomiędzy poszczególnymi podtypami obiektów. O samych relacjach dowiemy się więcej w kolejnym artykule.

W zasadzie tworząc geobazę, należy założyć, że każdy obiekt będzie posiadać przynajmniej jeden podtyp. Oczywiście każdy obiekt może posiadać wiele podtypów. Generalnie podtyp powienien rozróżniać obiekty o innych właściwościach lub innych połączeniach logicznych. Na postawie podtypu można również określić np. wygląd symbolu obiektu na mapie.

Zakładając, że obiekt na mapie to tak naprawdę rekord w bazie danych, można określić, że każdy z obiektów będzie posiadać kolumnę określającą podtyp. W tym przypadku jest to pole TYP.  Teraz wystarczy określić unikalne wartości dla pola TYP dla poszczególnych podtypów. Np. Budynek mieszkalny może mieć pole typ=12, a  budynek gospodarczy mieć typ=13.  Całość sporawadza się do tego, iż kolumna TYP będzie miała wartość 12 lu 13, zależnie od budynku. Teraz obiekty o polu TYP=12 będą wyświetlane na żółto, a obiekty o TYP=13 na niebiesko.

Ilość typów i zastosowanie jest zależna od potrzeb projektu.  W skrajnych przypadkach, w dużym projecie można mieć do czynienia nawet z 300 podtypami.

Podtypy są nieocenione podczas kodowania. Często z poziomu kodu, to jest właśnie najelegntsza i najłatwiejsza metoda na identyfikację obiektu i rozróżnienie funkcjonalności.

W praktyce

Uruchamiamy projekt, który utworzyliśmy w poprzednim artykule. Tworzymy pakiet Subtype jak na załączonym zrzucie poniżej. Kopiujemy klasę Budynek i umieszczamy ją w pakiecie Subtype w drzewie. Na schemacie UML poniżej można zobaczyć efekt końcowy. Za pomocą następnych zrzutów pokażę krok po kroku jak całość wykonać.

subtype

We właściwościach skopiowanej klasy Subtype::Budynek z zakładki atributes usuwamy wszystkie pola za wyjątkiem pola TYP. Dla pola TYP ustawiamy wartość domyślną (ang. Init. Value) - w tym przypadku jest to wartość 12. Od tego momentu w geobazie będzie można odwoływać się do bezpośrednio do klasy Budynek, gdzie  TYP=12. 

wartość podtypu

Osadzamy na schemacie klasę podtypu, a następnie używająć narzędzia “Association” tworzymy relację między klasą Budynek a jej podtypem. Efekt końcowy jest widoczny na pierwszym zrzucie. W właściwościach relacji ustawiamy pole Stereotype na Subtype.

relacja

Aby utworzona relacja na schemacie była wyświetlana z opisem <<Subtype>> należy z menu kontekstowego relacji wybrać opcję Shape Display Options.

display options

 Na poniższym zrzucie widać ustawienia, jakie zostały zastosowane w przykładzie. Kluczowe w tym przypadku jest zaznaczenie pola Stereotype. Proponuje poeksperymetować z ustawieniami, tak aby schemat UML był czytelny. W dalszych częściach, gdzie będę omawiać relacje ESRI wtedy będziemy używać innych ustawień wyświetlania.

display options

Po zapisaniu projektu, należy postępować tak jak w pierwszej części cyklu artykułów. W telegraficznym skrócie: należy wyeksportować projekt do XMI, następnie sprawdzić jego poprawność, po czym z poziomu ArcCatalogu zaimportować do osobistej geobazy, którą utworzyliśmy w pierwszym artykule. Następnie wyeksportować całość do pliku XML i zaimportować do docelowej geobazy w Oracle.

W efekcie we właściwościach klasy Budynek na zakładce Subtypes będzie wydoczne pole które identyfikuje podtyp, oraz predefiniowana wartość 12.

ArcCatalog

 

 

Published by Bolesław Maliszewski on 11 maja 2008

Projektowanie geobazy ESRI ArcGIS cz. 1

Wstęp

W tym artykule chciałbym przybliżyć techniki projektowania geobazy dla systemu ArcGIS. Na wstępie chciałbym zaznaczyć, iż planuję cały cykl artykułów poświęconych temu zagadnieniu. Niniejszy artykuł będzie wprowadzeniem w metodologię i przedstawi jeden ze sposobów w jaki projektowaliśmy strukturę geobazy.

Krótko o GISie

Systemy GIS w najbardziej klasycznej formie opierają się na cyfrowej mapie składającej się z obiektów, które są opisane różnymi atrybutami. Mapy te są powszechnie wykorzystywane przez zakłady energetyczne, telekomunikacyjne, gazownicze itp. do opisywania ich majątku sieciowego. Obiekty przedstawione na mapie stanowią swego rodzaju sieć. Możemy sobie wyobrazić na przykład słup energetyczny oraz przyłączony do niego przewód czy tez na przykład budynek. Każdy z tych obiektów posiada właściwości opisuje je – np. budynek posiada adres, a słup wysokość itd. Geobaza jest formą repozytorium przechowującego mapę wraz z naniesionymi na nią obiektami oraz informacje o nich. W naszym przykładzie zaprojektujemy i przygotujemy do populacji (wypełnienia danym)i geobazę zawierającą jeden obiekt - budynek.

MS Visio

Projektowanie geobazy poczynamy od zamodelowania obiektów, ich wyglądu, właściwości oraz zależności pomiędzy nimi. Naturalnie proces projektowania jest skomplikowany a model z pewnością będzie ulegać zmianom. Narzędziem za pomocą którego wykonamy model jest Microsoft Visio 2003. Model będzie przechowywany w pliku w formacie Visio i w każdej chwili będzie mógł być poddawany modyfikacjom.
W poniższej lokalizacji znajduje się rozszerzenie pakietu Visio o moduł eksportu do XMI, moduł sprawdzania poprawności modelu oraz szablon projektu.

http://support.esri.com/index.cfm?fa=knowledgebase.documentation.viewDoc&PID=43&MetaID=658

Projektowanie

Otwieramy ściągnięty plik szablonu projektu Visio i zapisujemy go pod nową nazwą. Od tej chwili w tym pliku będzie znajdować się nasz projekt.

szablon

Na zrzucie ekranu widać strukturę obiektów w systemie ESRI ArcGIS. Tworzymy nową zakładkę – w tym przypadku nazwiemy ją „obiekty”. Dobrym zwyczajem jest grupowanie definicji obiektów np. na zakładkę z obiektami punktowymi i liniowymi przyłączonymi do nich itp. Nie należy z tym jednak przesadzić - zbyt duża ilość zakładek znacznie spowolni proces otwierania i zapisu pliku projektu.

Za pomocą narzędzi z paska narzędzi „UML Static Structure” definiujemy klasę budynku dziedziczącą po klasie Feature. Każda z klas ma swoje właściwości. Proszę zwrócić uwagę na pole Shape w klasie Feature – to ono sprawia, że tworzony obiekt będzie posiadać reprezentacje graficzną (geometrię). Tym samym nie klasa budynek nie będzie zwykłą tabelą lecz obiektem graficznym. We właściwościach klasy Budynek, która dziedziczy po klasie Feature określimy jaki typ geometrii będzie przechowywać pole Shape oraz określimy inne parametry. Używając narzędzia dziedziczeni i innych podobnych proszę zwrócić uwagę, aby klasy początku i końce „strzałek” nie tylko stykały się ale również łączyły się z klasami. Dobrym pomysłem jest również pogrupowanie powstałych klas w „model explorerze” poprzez utworzenie folderów (tutaj ang. package) reprezentujących poszczególne typy klas, tabele klasy relacji, podtypy oraz datasety.

projekt

Poniżej zostały pokazane na zrzucie pola (właściwości) klasy Budynek. Naturalnie tutaj można dodać wszystkie niezbędne pola np. pola adresowe (ulica, miejscowość, kod, numer itp).

właściwości klasy

Na poniższym zrzucie widać dodatkowe ustawienia klasy Budynek. Pole GeometryType określa sposób reprezentacji graficznej. W tym przypadku jest to wielokąt (ang. polygon).

właściwości

Więcej informacji można znaleźć w dokumentacji, którą ściągnęliśmy w początkowej części artykułu („Case Tools Tutorial”).

W tym artykule skupimy się jedynie na aspektach związanych z przygotowanie geobazy. Sam projekt będzie możliwie jak najprostszy. W kolejnych artykułach postaram się bardziej przybliżyć aspekty związane ze strukturą obiektów, relacjami je łączącymi, podtypami (ang. subtype) itp.

Tak przygotowany projekt eksportujemy do formatu XMI za pomocą funkcji „ESRI XMI Export”. Instalacja tego modułu została opisana w odnośniku zamieszczonym na początku artykułu.

eksport

Zapis pliku XML w formacie XMI powinien zakończyć się poniższym komunikatem.

sukces

Tak zapisany projekt geobazy należy zweryfikować za pomocą makra „SematicsChecker”, którego instalacja została również opisana w odnośniku na początku artykułu.

SemanticsChecker

Jeśli wykonany model jest poprawny, sprawdzenie powinno się zakończyć komunikatem jak na załączonym poniżej zrzucie.

 

sukces

Nasz model jest już gotowy i może zostać zaimportowany do geobazy. Często się zdarza, że proces tworzenia geobazy wiąże się również z migracją istniejących danych. Dlatego konieczne jest rozdzielenie poszczególnych obiektów geobazy na osobne pliki (np. plik zawierający klasy, plik zawierający relacje, sieć geometryczną, plik z domenami). Wtedy będzie można bez przeszkód wykonać migrację danych do geobazy w formie wieloetapowej, gdzie osobno będą importowane dane, grafika a następnie podłączane relacje, po ty by na końcu wpiąć wszystko w sieć geometryczną. W tym celu utworzymy z poziomu ArcCatalogu lokalną bazę plikową (ang. File geodatabase) lub osobistą geobazę (ang. personal geodatabase). Zaletą tego drugiego jest to, iż dane są przechowane w jednym pliku w formacie Microsoft Access (MDB), wadą jest niestety wolniejsze działanie od bazy plikowej. W bazie plikowej dane są przechowane w podkatalogu w plikach.

nowa geobaza

Do utworzenia geobazy użyjemy narzędzia, które nie jest domyślnie dostępne na pasku zadań. Znajdziemy je używając opcji „customize” dostępnej w menu kontekstowym paska zadań, a następnie wyszykujemy pasek zadań „Case tools” oraz narzędzie „Schema Wizard”.

Mając aktywny węzeł bazy plikowej w drzewie obiektów w ArcCatalog Uruchamiamy „Schema Wizard” a następnie należy wybrać opcję przechowywania modelu w pliku XMI oraz wskazać wcześniej wygenerowany plik XML.

schema wizard

Poruszając się w kreatorze otrzymujemy podgląd importowanego schematu obiektów. To jest dobry moment, aby ustawić dodatkowe parametry, układ odniesienia i in. Możemy to wykonać za pomocą przycisku „Properties”.

podląd klas

Po zakończeniu kreatora i upewnieniu się w logach, że proces importu przebiegł poprawnie, w drzewie można zaobserwować nowe, zaimportowane obiekty jak na poniższym zrzucie ekranu.

zaimportowana geobaza

W tej chwili cały model jaki został zaprojektowany za pomocą MS Visio został przeniesiony do lokalnej bazy plikowej. W dalszej części użyjemy narzędzia Geodb Designer 2, które możemy ściągnąć ze strony:

http://arcscripts.esri.com/details.asp?dbid=13484

Po zainstalowaniu, należy uaktywnić pasek zadań o tej samej nazwie. Opcje w menu jak poniżej na zrzucie są dostępne tylko gdy aktywny jest główny węzeł geobazy. Należy również włączyć okno podglądu.

opcje GoedbDesignera

W menu są dostępne funkcje do eksportu poszczególnych elementów struktury geobazy. Jak same nazwy wskazują, można wyeksportować osobno klasy obiektów, klasy relacji, klasy sieci geometrycznej, topologii oraz domeny. W tym przypadku nie ma sensu uruchamiać innych opcji niż „Object Classes to XML”, gdyż nasza geobaza jest prosta i nie zawiera innych elementów niż klasy obiektów. Istotny jest fakt, iż po uruchomieniu każdej z funkcji, wynik jej pojawia się w oknie podglądu poniżej na zakładce „XML”. Należy uruchomić przycisk „Save as…” aby otrzymać plik XML z określonymi elementami geobazy.

Po eksporcie wszystkich elementów geobazy można przejść do tworzenia docelowej geobazy. Zazwyczaj taka baza będzie znajdować się na serwerze Oracle lub MS SQL. Teraz importując kolejno poszczególne pliki XML do docelowej bazy za pomocą można dokonać jej populacji bez przeszkód związanych z relacjami i siecią geometryczną. Innymi słowy import poszczególnych elementów geobazy będzie prawdopodobnie częścią migracji systemu do geobazy.

Import danych dokonujemy poprzez wczytanie pliku do okna podglądu XML, a następnie poprzez użycie opcji „Import From XML”.

import za pomoca GeodbDesignera

Powyższych funkcji można użyć do rozwoju geobazu i jej automatycznej rozbudowy. Przykładowo wystarczy dołożyć nową klasę w projekcie, wykonać powyższe kroki aby utworzyć pliki XML za pomoca GeodbDesignera. Następnie usunąć wpisy dotyczące już istniejących obiektów – zostawiając tylko te dotyczące nowej klasy. Tak przygotowane pliki można zaimportować do geobazy i uniknąć skomplikowanego procesu ręcznego tworzenia klas obiektów. Naturalnie pozostawienie definicji istniejących obiektów zaowocuje błędami podczas importu, ale powinno również przynieść pożądany rezultat, a nowo utworzona klasa powinna być poprawna.

Published by Bolesław Maliszewski on 27 kwietnia 2008

Po co mi blog?

No właśnie… Całkiem niedawno miałem okazję poznać “moc” blogów. Otóż zostałem zaangażowany w nowy projekt intranetowy. Jednym z pomysłów było wykorzystanie nowej technologii - Microsoft Silverlight 2. Technologia jest na tyle nowa, że projekty wykorzystujące ją można by policzyć na palcach obu rąk.

Zgodnie w prawidłem najpierw miało miejsce rozpoznanie. To właśnie w czasie rozpoznania natknąłem się na fakt, iż większość wiedzy praktycznej została zawarta w blogach. Dokumentacja nie była pełna i brakowało w niej przykładów. W czasie rozpoznania przykłady są najlepszą formą potwierdzenia funkcjonalności - w szczególności gdy środowisko jest w wersji beta. Praktycznie cały czas w czasie rozpoznania korzystałem właśnie z blogów i przykładów w nich zawartych.

Zauważyłem jeszcze pewien ciekawy trend. Otóż duże korporacje takie jak Microsoft tworzą nowe komórki zajmujące się tzw. community. Korporacje zatrudniają ludzi, których zadaniem nie jest już tylko moderowanie forum technicznego i odpowiadanie na pytania zainteresowanych. Teraz są zatrudniani ludzie, którzy prowadzą bloga i jest to ich jednym z obowiązków służbowych. Ciekawa i jakże pomocna forma promocji nowego środowiska…

Konkluzja jest jasna - warto prowadziać blog, gdyż niesie to wiele informacji praktycznych, informacji których nie znajdziemy w dokumentacji, a przekazanych w sposób prosty i nieformalny :).

Published by Bolesław Maliszewski on 18 kwietnia 2008

Odtwarzenie zawartości projektu instalacyjnego - tryb instalacji administratora

Jak w każdej firmie, w której powstają duże aplikacje, istnieje również konieczność wykonywania ich wersji instalacyjnych. Zazwyczaj odbywa się to na środowisku wydzielonym od środowiska deweloperskiego oraz testowego. Zwykle jest to osobny komputer lub wirtualna maszyna. Proszę sobie wyobrazić sytuację, gdzie taki komputer ulega uszkodzeniu, a co gorsza nie ma aktualnego jego backupu. Klienci czekają na nową aplikacje z poprawkami w ramach maintenencu za który słono zapłacili, czas płynie, a nowa aplikacja nie może powstać…

Niestety opisywana sytuacja miała miejsce i nie wnikajmy teraz jak to się stało czy dlaczego nie ma backupu. Trzeba zrobić jak najszybciej nową aplikację… Im bardziej skomplikowany projekt, tym zadanie to jest bardziej pracochłonne.

Szukając rozwiązania natrafiłem na tzw. „tryb administratora”. Instalacja w tym trybie rozpakowuje zawartość pliku instalacyjnego (np. „setup.exe”). Taką instalację stosuje się podczas instalacji w sieci. My natomiast w ten sposób dostaliśmy wszystkie pliki exe, wszystkie biblioteki, skrypty konfigurujące komputer w czasie instalacji oraz pliki dodatkowe. Wszystko to poukładane w podkatalogach. 

Setup.exe /A

Dla ciekawskich – dostępne są również inne parametry:

Setup.exe /?

Teraz wystarczy już tylko utworzyć nowy projekt w InstallShield  (lub innym oprogramowaniu do przygotowywania wersji instalacyjnych) i dodać do niego rozpakowane pliki. W ten sposób w niedługim czasie można przystąpić do ponownej kompilacji nowej wersji aplikacji. Rozwiązanie to z pewnością działa w przypadku projektu skompilowanego za pomocą InstallShield, jak jest w przypadku innych kompilatorów - tego nie wiem, mniemam że podobnie.

« Prev - Next »