W ramach testowania MicroGeoCAD’a, przyglądamy się bacznie treści plików „gml” oraz podejściu ODGiK’ów do problematyki wymiany informacji w tym formacie. Próbujemy również zrozumieć niektóre zapisy Rozporządzenia. Wyniki tych prób i testów, prezentujemy poniżej,  podlane delikatnym sosem sakrazmu, ponieważ taki sos ułatwia strawienie problemu 🙂   A te same błędy i problemy omawiamy – już całkiem na serio – na innych forach.

Miłej lektury!

 

01. Rzut oka na kody SUUS15_7b oraz SUUS17_01 daje pełną jasność z jakimi obiektami mamy do czynienia, ale żeby równie łatwo było analizować treść mapy, autorzy Rozporządzenia, zaprojektowali dwa różne znaki graficzne dla obu obiektów. Pierwszy jest prostokątem 2 na 1 (mm), zaś drugi 1 na 2 (mm). Jak je szybko rozpoznać? Otóż, pierwszy ma dłuższy bok dłuższy od krótszego, zaś ten drugi ma dłuższy bok krótszy do krótszego!

Studzienka oraz szafka - prostokaty

 

02. Tym razem coś z biurka testerów gml’a. Dawniej wodę dostarczano do domów rurami ale było z nimi mnóstwo kłopotu, trzeba je było gwintować, skręcać, spawać, zakładać krany zawory itp. Wszystko to rdzewiało, przeciekało i generalnie było z tym mnóstwo zachodu. Na szczęście to już przeszłość – teraz wodę dostarcza się kablem – odpowiedni zapis w pliku gml, poniżej.

Rura kablem

 

03. Wygląda na to, że przewód telekomunikacyjny lub wiązka takich przewodów, powinna być kreślona znakiem SUPT_01 lub SUPT_02, w zależności od wartości atrybutu „srednica” (po polsku średnica).  Tylko, że schemat aplikacyjny nie przewiduje takiego atrybutu dla tego obiektu. Przy okazji zwracamy się z uprzejmą prośbą do geodetów, którzy pracując w terenie trafią na pojedynczy przewód telekomunikacyjny (albo energetyczny) o średnicy większej niż 75cm, o jakiś dowód istnienia takich obiektów (najlepiej w formie „selfie z …”).

Średnica przewodu telekomunikacyjnego

 

04.  Jeżeli ktoś z Koleżanek i Kolegów inżynierów ma problem ze zrozumieniem zapisów rozporządzenia, to proszę się nie martwić  – ten dokument nie był pisany dla inżynierów. Nie ma też służyć do tworzenia mapy i wymiany informacji a do tworzenia i zasilania baz danych. Przedstawiona poniżej tabelka z listą wątpliwości, powstała w trakcie implementacji zapisów rozporządzenia w naszej aplikacji. Część wątpliwości udało się wyjaśnić, ale czy to wyjaśnienie jest właściwe …  okaże się za jakiś czas …

Sprawa przewodów - ilustracja

 

05. W przypadku obiektu EGBC03, wizualizowanego w skali 1:2000, nie należy stosować opisów a niestosowane opisy mają mieć 1,5 mm wysokości (wiem, wiem … są jeszcze inne mapy ale po co definiować wysokości opisów w Rozporządzeniu?).

Wysokosc opisow ktorych nie ma EGBC03

 

06. Na obrazku poniżej, możecie Państwo sprawdzić, co może być „źródłem pochodzenia” czyli „typem wyznaczenia” albo inaczej „sposobem wyznaczenia” współrzędnych punktów osnowy (w skrócie „metFiLa”). Wrzucam to zestawienie uzupełnione zrzutką ze słownika wyrazów bliskoznacznych, dla tych, którzy twierdzą, że twórcy serii Rozporządzeń byli nieelokwentnymi bałaganiarzami. Nie ma wątpliwości, że byli elokwentni!

Zrodlo - Typ - sposob

 

07. Podobno w pierwszej wersji Rozporządzenia w sprawie EGiB z 2013 roku było: „wlascicielZbiornikaNaPrzewodzieTelekomunikacyjnym = 39”  🙂   (-> punkt 12 )

Policz do 1 do

 

 

08. I znowu coś z biurka testerów – fragment pliku gml, w którym zasadę obracania znaków potraktowano dosyć luźno. Symbole sygnalizatorów świetlnych (SUUS16) są wstawione pionowo, a symbole słupów trakcyjnych (SUSM07) są obrócone zgodnie z kierunkiem linii tramwajowej. Naszym zdaniem oba symbole powinny być obracane, ponieważ  podnosi to czytelność mapy.

Obracanie znakow 1

 

09. Jeżeli zmierzonym obiektem jest wiata (czyWiata = true), to do gml’a musi trafić uzasadnienie braku informacji (stereotyp „voidable”) na temat klasy, głównej funkcji, dacie wyceny i 17 innych atrybutach. Oczywiście, dobry program przypisze odpowiednie wartości atrybutów automatycznie po ustawieniu „czyWiata” na „true”, więc nie musimy się tym przejmować, ale czy nie prościej było by, gdyby istniał obiekt wiata z atrybutem „typWiaty” z listy „przystankowa”,”parkingowa”,”inna” ?

20 atrybutow wiaty

 

10. Z jakiego materiału mogą być zewnętrzne ściany budynku? Otóż mogą być: z drewna, z muru albo z czegoś innego! Oznacza to, że cegła zrobiona jest z muru!  Gdyby autor tego fragmentu Rozporządzenia zajrzał do Internetu albo  raz wstał zza biurka i przespacerował koło budowy, odwiedził jakiś skład materiałów lub choćby sklep budowlany, to by się dowiedział, że ściany mogą być na przykład drewniane, ceramiczne, betonowe albo materiały te mogą być łączone (mur pruski albo szkielet stalowy z wypełnieniem ceramicznym itp.).  Żeby nie było, że tylko narzekam, to proponuję atrybut „EGB_MaterialScianZewnetrznych” i wartości „drewno”,”cegła”,”pustak ceramiczny”,”beton”,”inny”. Prosto, uniwersalnie i po polsku. A może by tak dołożyć jeszcze „brak”?  No bo jak coś ma atrybut „czyWiata” równy „true” to nie ma ścian…

materiał scian

 

11. Kolega kupił stary, drewniany, zaniedbany domek, zbudowany około 1930 roku, w zabitej dechami wsi. Ponieważ nie chciał tracić kontaktu ze światem,  zgłosił się do pewnej firmy telekomunikacyjnej, której sympatyczni pracownicy w ciągu 24h od przyjęcia zlecenia, wciągnęli do domu skrętkę, której drugi koniec (upraszczając nieco sprawę) podłączyli do biegnącego przez wieś światłowodu i kolega ma teraz bardzo, ale to bardzo szybkie łącze. Skoro trwało to tylko dobę, to oznacza, że ten budynek był gotowy na szybki internet!  Wobec tego rodzi się kilka pytań. Po pierwsze: „czy mierząc a później wkreślając taki stary, drewniany, zaniedbany domek na mapę, powinniśmy ustawić atrybut „budynekGotowyNaSzybkiInternet” na „true”?  Po drugie: „po czym to można poznać, że budynek nie jest gotowy na szybki internet”?  Po trzecie: „czy ta informacja jest aż tak ważna, że trzeba ją umieszczać w bazie danych mapy zasadniczej„? I po czwarte: „czy to prawda, że autorzy Rozporządzenia mieli płacone „od atrybutu”?

Gotowy na internet

 

12. Dostałem kiedyś sms’a z 24 godzinnym opóźnieniem i długo zastanawiałem się nad mechanizmem tego zjawiska. W 2013 roku wszystko stało się jasne! Po prostu sms wpadł do zbiornika na przewodzie telekomunikacyjnym i został wysłany w dalszą drogę dopiero wtedy, kiedy zbiornik się wypełnił. Niestety w wersji Rozporządzenia z 2015 roku nie ma tego już obiektu – zostały tylko „dziury” w kodach.

ZBIORNIK 13-15

 

13. A teraz przykład Bareizmu w Rozporządzeniu. Na każdą rzecz można patrzeć z dwóch stron. Jest prawda matematyki, którą wszyscy znają, i prawda rozporządzenia, która mówi: „Wartość atrybutu 'srednica’ nie może być pusta, jeśli atrybut 'rodzajUrzadz’ przyjmuje wartość zbioru: (’wlaz’, 'studzienka’)”. Nawet jeżeli studzienka czy właz są kwadratowe. Dla dociekliwych – „IdLokalny” w niebieskiej ramce, atrybut „kształt” w czerwonej.

srednica kwadratu

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14. Jak wynika z punktu 13, kwadratowa studzienka, dla której nie podamy średnicy nie przejdzie procesu walidacji ale za to nie ma problemu ze studzienką o średnicy 5mm.

Studzienka 5mm

 

15. Czy ktoś ma pomysł, co oznacza literka „N” w opisie kanalizacji kablowej? Bo jeżeli „N – niskiegoNapiecia” (niskiego napięcia) , to takiej informacji (GES_TypElektr) nie przewiduje schemat aplikacyjny. A może źródło danych „N – niepoprawne”? Na razie nie możemy dopasować puzzli do obrazka ale mamy propozycję rozwiązania problemu: należy zdefiniować relację asocjacji pomiędzy kanalizacją a przewodem oraz zakaz umieszczania przewodów o różnym napięciu w tej samej kanalizacji. I już!

opis kanalizacji kablowej 1

 

16. I znowu fragment mapy z pliku, który trafił do nas w ramach „walki z gml’em”. Tym razem trafiliśmy na mapę, na której wszystkie studzienki zostały „narysowane przewodem”, przez co: mają 60 węzłów konstrukcyjnych na 30 odcinkach (zamiast jednego węzła w środku jednego okręgu), nie mają węzła w punkcie wstawienia (!), mają niewłaściwy kod kartograficzny (SUPE_01 zamiast SUUS15_03), mają podwójny kod (bo z geometrii wynika SUPE_01 a z rodzaju sieci SUPE06)  i powiększają objętość pliku o 30%.

super studzienka enn 1

 

17. I jeszcze drobny problem z tego samego dnia testów. Tego samego dnia, inny Ośrodek wydał wykonawcy plik „gml”, w którym 22% stanowiły obiekty z instrukcji „K1”.  Na pytanie „czy w pliku gml  mogą być obiekty z k1” sympatyczny pracownik udzielił prostej odpowiedzi: „a czemu nie”.   Zastanawiam się, czy  równie normalne było by dla niego, gdyby w liczącym 10 tabletek, opakowaniu leku od bólu głowy, znalazł 7 tabletek od bólu głowy, 2 tic-tac’i i jeden silny środek na przeczyszczenie.

Uwaga: Powyższy punkt zawierał lokowanie produktu 🙂

 

18. Plik „gml”, zawierający punkty o znanej wysokości na sieci ( SUPS01_0* ), które nie mają podanego identyfikatora materiału zasobu, nie przejdzie procesu walidacji. Oznacza to, że wkreślając te obiekty na mapę, trzeba znać id, który zostanie nadany po przyjęciu do zasobu. W ramach charytatywnego wspomagania GUGiK’u,  proponujemy wprowadzenie następującej procedury współpracy ODGiK’ów z wykonawcami:

  • wykonawca zgłasza w ODGiK pracę „wstępne oszacowanie zapotrzebowania na identyfikatory punktów wysokościowych”
  • w odpowiedzi (do 30 dni) otrzymuje, zgodę na przeprowadzenie w terenie rozpoznania i specjalny druk „szczegółowego zapotrzebowania na identyfikatory”
  • przeprowadza wywiad terenowy, w wyniku którego sporządza protokół rozpoznania zapotrzebowania
  • składa operat (dla ułatwienia drogą elektroniczną), którego składnikiem jest druk szczegółowego zapotrzebowania z zadeklarowaną liczbą potrzebnych identyfikatorów
  • jeżeli operat nie zawiera błędów, to w odpowiedzi (do 30 dni) otrzymuje zestawienie identyfikatorów materiałów na formularzu „przydział identyfikatorów punktów”
  • następnie wykonawca wykonuje właściwą pracę (zgłasza,  pobiera, płaci, mierzy,  itp. itd.)
  • kreśląc na mapie punkty o znanej wysokości na sieci, wykorzystuje pozyskane identyfikatory materiału zasobu,
  • do operatu z właściwej pracy dodaje raport z wykorzystania identyfikatorów, z dodatkowym protokołem w przypadku niewykorzystania przedzielonych identyfikatorów
  • niewykorzystane identyfikatory wracają do puli  (po zapłaceniu przez wykonawcę opłaty za niewykorzystane identyfikatory)

19. Najzabawniejsze „uzasadnienia” odmowy przyjęcia i wydania plików gml:

  • wydajemy tylko kcd i już.  Inni sobie jakoś radzą,  proszę dzwonić do Geomatyki!
  • gml nie zawiera danych wektorowych,
  • w pliku gml nie ma informacji, które są potrzebne do zasilenia bazy danych,
  • współrzędne w pliku gml mają za małą dokładność,
  • plik gml i tak musi być przerobiony na kcd, bo tylko z kcd da się zrobić gml’a, który przechodzi walidację,
  • nie ma znaczenia, czy plik gml został zwalidowany pozytywnie walidatorem GUGiK’u, bo tylko walidator programu [nazwa programu] działa poprawnie,
  • w plikach z MGC, etykiety na przewodach są za bardzo przesunięte w dół (o 1/3 mm),
  • po prostu nie przyjmujemy gml’i i już.

20. Sad chmielowy i jabłka z uprawy sadowniczej

Trafiłem kiedyś w czasie pomiarów na plantację chmielu. W 2013 roku narysował bym obiekt „PTTU02 – plantacja” ale teraz sprawa nie jest już taka prosta. Niby jest to wysokie, liściaste i w środku można się zgubić ale na pewno nie jest to las! Nie jest to też zakrzewienie, bo chmiel to roślina, która ma pędy. Trawnik też to nie jest, choć na upartego można by to skosić. Kiedyś uważano szyszki za owoce drzew iglastych, wiec kiedyś mógłby to być sad, ale ponieważ obecnie szyszkę definiuje się jako kłos (zarodnionośny),  no to wychodzi na to, że jest to pole z czymś co ma kłosy, ale niestety takiego obiektu w rozporządzeniu nie ma. Z drugiej strony chmiel się uprawia, a ponieważ jedyna uprawa jaka jest w spisie, to uprawa sadownicza, więc jest to chyba jednak sad – „sad chmielowy”. A przy okazji:  obecnie jabłka nie pochodzą jak dawniej z sadu, tylko z „uprawy sadowniczej”.

Sad chmielowy

 

21. Biurko testerów jeszcze raz. Tym razem prostokątne schody, zapisane w pliku gml w taki sposób, że doprawdy trudno było by skomplikować to bardziej. Plik pochodzi z tego samego ODGiK, co słup aproksymowany linią energetyczną (punkt 16). W dolnej części rysunku, te same schody z zaznaczoną na niebiesko polilinią kierunkową.

Super schody

 

22. Wrzesień 2019 – jest lepiej, ale ciągle jeszcze trafiamy na takie „kwiatki”, jak ten z obrazka poniżej.

Jest lepiej ale 1

 

23. Czy ktoś ma pomysł jak zwizualizować obiekt o takich atrybutach?

Jak to narysować

 

24. Tym razem coś, co nie jest wielkim błędem ani problemem, ale utrudnia pracę i generuje bałagan, a mianowicie tajemniczy obiekt SUXX (punkt zmiany cech). Nie ma go w bazie danych ale należy go wizualizować,  co oznacza, że albo mapa jest hybrydą zawierającą informacje z bazy danych i  niezdefiniowanego źródła, bądź też obiekty SUXX mają być przygotowywane „w locie”, podczas wizualizacji treści bazy. Obiekt „SUUX_01”,  jest odcinkiem linii o geometrii „punkt”, a ponieważ  – nie licząc obrazka – nie ma zdefiniowanego kąta wstawienia, to na upartego można by go rysować wzdłuż przewodów (byle „na styku”).  W dodatku, mimo iż obiekt do bazy nie trafia, to jego brak w pliku „gml”, jest traktowany jak błąd, więc rysować go należy. Generowanie „w locie” to  żaden problem, ale po co w taki razie dopisywać ten obiekt do pliku gml? W dodatku SUXX zapisywany jest w gml’u  jako KR_KARTO, a to rodzi dwa poważne problemy. Po pierwsze mapa numeryczna „nie posiada skali” (czyli plik „gml” również „nie ma skali”) a obiekt zapisany jako KR_KARTO, „posiada skalę” a więc taki „gml” równocześnie „ma skalę” i „nie ma skali”.  Po drugie plik „gml” zawiera to, co nie powinno się  w nim znaleźć, bowiem „gml” powinien zawierać informacje o geometrii i cechach obiektu a takich nie zapisuje się a jedynie jego wygląd.

Skad sie biara suxxy 2

 

25. A dzisiaj odkryliśmy schody, które zostały wyeksportowane do pliku gml, jako trzy osobne obiekty (rysunki po lewej). Razem tworzą to, co widać po prawej stronie. Żeby ładniej to wyglądało na rysunku, program eksportujący, pozbawił te obiekty polilinii kierunkowej (mgc uznał, że jest pozioma) i do dodał ładną reprezentację graficzną, złożoną z trzech obiektów „kr_karto”. I w ten sposób powstały piękne „trójschody bezkierunkowe” o geometrii „multipowierzchnia”.

Mozna sie zabic 2

 

26. Tym razem problem słupa i latarni. Oczywiście z punktu widzenia inżyniera nie ma żadnego problemu. Wiadomo co to jest słup i wiadomo co to jest latarnia i wystarczyły by dwa obiekty „słup” oraz „latarnia”, żeby można było zapisać w bazie danych oraz zwizualizować wszystkie występujące w realnym świecie kombinacje tych obiektów. Jednak autorzy Rozporządzenia albo nie wiedzieli o czym piszą albo wiedzieli, ale nie widząc problemu postanowili go stworzyć *). Dlatego teraz, jeżeli obiekt „słup” ma ten sam punkt wstawienia co obiekt „latarnia”, to i tak słupowi trzeba ustawić atrybut „zLatarnia” na „true”, bo przecież latarnia może sobie przypadkiem wisieć dokładnie nad słupem a nie być z nim związana!  Natomiast, jeżeli atrybut „rodzajSlupa” obiektu, ma wartość „latarnia”, to Rozporządzenie zabrania ustawiania atrybutu „zLatarnia”, bo bo co by oznaczała wartość „false” … latarnia bez latarni? Logiczne, tyle, że skutek tej „logiki” jest taki, że obiekty SUSM01 oraz SUSM01_01, są po zapisaniu do gml’a nierozpoznawalne. Trochę szkoda, bo obiekty „latarnia bez latarni” pojawiają się systematycznie po derbach Krakowa. Poza tym taka klasyfikacja obiektów oznacza, że na słupie (np. enn) może być zawieszony inny słup lub maszt, typu latarnia oraz że latarnia nawet bez słupa i tak jest słupem lub masztem. Poniżej ilustracja tego problemu, z wartościami atrybutów, stosowanymi przez EWMapę oraz GeoInfo. Jeszcze jedno! Latarnia może być zapisana w bazie danych jako „powierzchnia” …

Problem słup-latarnia z 10-2020

*) ewentualnie mogli mieć „płacone od strony”

 

 27. Jeżeli zmierzę rzędną wysokości u podstawy pnia drzewa, to będzie to rzędna dołu, czy rzędna góry?

DrzewoRzednaGoryDolu

 

28. Biurko testerów kolejny raz. Tym razem z tego samego Ośrodka w K., dwa sposoby zapisania informacji o braku danych przedstawiciela obiektu z bazy GESUT.  Wersja zaznaczona na czerwono pojawia się częściej w plikach z tego Ośrodka, ale moim zdaniem poprawna jest wersja zaznaczona na niebiesko, ponieważ zapis zaznaczony na czerwono, mógłby sugerować, że właściciel nazywa się Unknown. James Unknown 🙂

Nieznany właściciel - 2 warianty

 

29. Sporą część obiektów należy sytuować (obracać) zgodnie z położeniem w terenie. Szkoda, że autorzy nie napisali jak projektować taki znak, jak kratka ściekowa: w pionie czy w poziomie. Podobnie jak w przypadku słupów i latarni, w plikach „gml” pojawiają się dwie interpretacje. Poniżej ilustracja problemu. W pierwszym przypadku, kratka została zaprojektowana „w pionie”, więc kąt wstawienia wynosi około 45 stopni. W drugim przypadku kratka była projektowana „poziomo”, więc kąt wstawienia wynosi około 135 stopni.

Kąt obrotu kratki

 

30  I znowu coś, co nie jest błędem ale utrudnia „połapanie się” w zapisach Rozporządzenia. Na obrazku ze schemtu „uml”, atrybuty występują w pewnej kolejności, ale w przypadku sekwencji atrybutów („sequence”), decydująca jest kolejność w schemacie „xsd”.







31. Tym razem skarpa, która ma początek i koniec górnej krawędzi w tym samym punkcie (czerwona ramka), ale też ta sama górna krawędź ma dwa początki i jeden koniec (ramka niebieska). I jak to narysować …?



32. I to samo źródło co powyżej. Czerwone strzałki to oryginalny początek i koniec góry skarpy (czyli tak jak to wygenerował program) a poniżej (niebieskie strzałki) tak jak to powinno wyglądać. Jak widać na górnym rysunku, MGC sobie z tym nie do końca poradził, ale jak sobie miał poradzić …? Dolny rysunek został wygenerowany po ręcznym skorygowaniu współrzędnych góry skarpy.





33. No to jeszcze jeden przykład dziwacznego zapisania informacji o skarpie. Podobnie, jak w przykładzie 31, są tutaj dwa początki i jeden koniec górnej krawędzi. kolory strzałek na rysunku odpowiadają kolorom ramek współrzędnych (obwodnica kreślona przeciwnie do ruchu wskazówek zegara). Co można powiedzieć o autorze takiego zapisu? Idiota albo automat. Od wersji 02.126, MGC radzi sobie z takimi przypadkami.