Pliki SVX, pliki 3d

Praca z Survexem rozpoczyna się od utworzenia jednego lub więcej plików SVX, w których tekstowo wprowadza się dane pomiarowe oraz sposób ich łączenia. Pliki te można edytować zwykłym edytorem tekstowym np. Notatnik lub WordPad. Co istotne, Microsoft Word nie nadaje się do edytowania plików SVX. Istnieje wygodny, darmowy edytor plików tekstowych pod nazwą Notepad++. Do jego zalet należy np. możliwość edytowania kilku plików w jednym oknie, w osobnych zakładkach (tak jak zakładki w przeglądarce WWW).

Pliki SVX koniecznie zapisujemy z roszerzeniem SVX. Z przyczyn praktycznych, warto powstrzymać się od umieszczania spacji oraz polskich liter w nazwach plików.

Plik SVX zawiera tylko dane źródłowe. Do przeliczenia ich na współrzędne prostokątne, musi zostać zaangażowany program cavern z pakietu Survex. Program ten nie posiada graficznego interfejsu użytkownika tj. nie można w nim nic „klikać”. Program po prostu przelicza dane i informuje o ewentualnych problemach komunikatami tekstowymi.

Aby go wywołać, należy kliknąć prawym klawiszem myszy na pliku SVX do przetworzenia i z menu kontekstowego wybrać opcję Process. W wyniku tej operacji, utworzony zostanie plik o rozszerzeniu 3d (i nazwie odpowiadającej plikowi SVX), w którym zapisane są współrzędne prostokątne punktów pomiarowych. Ten plik można następnie otworzyć w programie aven pakietu Survex w celu zapoznania się z wynikiem obliczeń czy wydrukowania ciągu pomiarowego. Plik typu 3d można także wczytać do Inkscape jako szkielet ciągu pomiarowego.

Jeśli w pliku SVX jest jakiś błąd (np. nie podano długości dla jednego z pomiarów), plik 3d nie zostanie utworzony. Konkretny powód, dla którego tak się stało, jest wytłumaczony w tworzonym przez program pliku z rozszerzeniem .log - wystarczy go otworzyć np. Notatniku (klikając po prostu dwukrotnie) i zapoznać się z komunikatami o błędach.

Plik .log jest tworzony również jeśli przetwarzanie pliku zakończy się powodzeniem - znajdują się w nim wówczas statystyki dotyczące przetworzonych danych, takie jak np. całkowita długość ciągu pomiarowego, głębokość, rozciągłość w osiach WE i SN itd.

Podstawowa składnia pliku SVX

W absolutnie minimalistycznej wersji, plik SVX (z danymi) powinien mieć postać zbliżoną do następującej:

*begin nazwasesjipomiarowej
*data normal from to tape compass clino
1 0 15.58 265.0 -3.4
2 1 15.29 212.7 22.3
3 2 18.83 259.4 11.7
...
*end nazwasesjipomiarowej

Jak pokazuje poniższy, drugi przykład, w programie Survex dosyć dowolnie można nazywać punkty pomiarowe. Niestety, jednym z niewielu zabronionych znaków jest kropka - używana intensywnie przez program PocketTopo.

W pliku pomiarowym warto odnotować datę pomiaru i członków zespołu pomiarowego. Można także poinformować Survex-a, który z podanych punktów (jeśli któryś) jest otworem - spowoduje to jego graficzne wyróżnienie podczas przeglądania wyników obliczeń (wygodne). Jeśli ciąg pomiarów opisany w pliku SVX będzie łączony z innymi ciągami, konieczne jest wskazanie punktów pomiarowych, do których będzie następowało dowiązanie (lub które będą dowiązywane).

*begin nazwasesjipomiarowej
*export 2_14 2_15
*entrance 1_0
*date 2012-11-15
*team "S. Nowak" notes
*team "J. Kowalski" tape compass clino
*data normal from to tape compass clino
2_1 1_0 15.58 265.0 -3.4
2_2 2_1 15.29 212.7 22.3
2_3 2_2 18.83 259.4 11.7
...
*end nazwasesjipomiarowej

Łatwa praca z plikami SVX

Pliki SVX muszą być zapisywane jako zwykły tekst (bez formatowania). Są dużo lepsze edytory takich plików niż Notatnik, WordPad czy MS Word. Warto rozważyć na przykład Notepad++ - pozwala na edycję wielu plików równocześnie w zakładkach (tak jak przeglądanie stron WWW), wyświetla numery linii (przydatne do poszukiwania błędów), ma polską wersję językową i może podświetlać składnię plików SVX (przydatne do nie popełniania błędów).

Podświetlanie słów kluczowych Survex'a w Notepad++ - należy wybrać z menu funkcję Składnia / Define your language..., a następnie korzystając z przycisku Import wczytać udostępniony na tej stronie plik z definicjami słów kluczowych, następnie zamknąć okno. W nowo otwieranych/zapisywanych plikach SVX program będzie wyróżniał słowa kluczowe (np. *begin). Pozornie to niewielka sprawa, ale jednak usprawnia pracę (ograniczenie ilości uciążliwych literówek itd.). Plik ze składnią nadesłał Michał Ciszewski.

Można pójść dalej i skonfigurować Notepad++ tak, aby jakis klawisz (np. F5) powodował przetworzenie obecnie edytowanego pliku i wyświetlenie błędów, z możliwością przejścia do linii, w których błędy wystąpiły. Przygotowanie w ten sposób edytora jest skomplikowane, ale robi się to raz i jeśli ktoś planuje na poważnie używać Survex'a, to z pewnością warto! Szczegółowe instrukcje tutaj. Na razie jest to pomysł testowy, nie był zbyt dużo używany. Sugestie - bardzo chętnie e-mailem.

Jeśli chodzi o samo przetwarzanie plików, to opisywany tu kiedyś temat cavern_kompilator.bat chyba się trochę zdezaktualizował - wydaje się, że najprostsze jest na tę chwilę korzystanie z funkcji Process, dostępnej w menu kontekstowym typu pliku SVX. Poprzednio opisane w tej sekcji metody zostały zarchiwizowane.

Import ciągów z PocketTopo

Istnieją co najmniej trzy podejścia do sprawy importu ciągów z PocketTopo do programu Survex. Każde ma swoje wady i zalety.

Metoda 1 - Potoco

Zaleta: Szybka, Wada: Wymaga pobrania i zainstalowania 5-megabajtowego programu z tej strony.

Potoco to skrót od Pocket Topo Converter. Jest to mój autorski konwerter formatu Pocket Topo Therion Export na format SRV (Walls) lub SVX (Survex). Można go pobrać stąd.

Działanie konwertera: w pierwszej kolejności, w programie PocketTopo należy wyeksportować dane w formacie Therion (File / Export / Therion). Wynikowemu plikowi należy nadać nazwę z rozszerzeniem .the. Taki plik następnie wczytujemy do potoco klikając w pierwszy przycisk Select (obok Input file: ...). Klikamy następnie drugi przycisk Select i wskazujemy nazwę, pod jaką konwerter ma zapisać docelowy plik. Następnie klikamy w Convert - i już, gotowe.

Niestety, najszybciej i najłatwiej było mi napisać ten program w języku skryptowym Python. Wobec tego, aby program działał na każdym komputerze, paczka z programem musi zawierać całe środowisko uruchomieniowe języka Python. Stąd rozmiar 5.33 MB mimo tego, że program robi tak niewiele. Tyle tłumaczenia się. Źródła w Pythonie dostępne tu.

Metoda 2 - Format toporobot

Zaleta: Nie wymaga żadnych dodatkowych programów, Wada: Nie importuje strzałów bocznych!

W programie PocketTopo (np. na palmtopie) używamy opcji eksportu do formatu TopoRobot (TRO). Plik w formacie TopoRobot zawiera dane w strukturze jak w przykładzie poniżej:

Version 5.02
Param Deca Degd Clino Degd 0.0000 Dir,Dir,Dir Inc Std
1_1 1_2 48.28 260.50 -7.50 0.00 0.00 0.00 0.00 N I
1_2 1_3 23.26 204.00 19.50 0.00 0.00 0.00 0.00 N I
1_3 1_4 47.74 248.00 5.50 0.00 0.00 0.00 0.00 N I
...

Należy otworzyć uzyskany plik TRO na komputerze PC i skopiować dane pomiarowe do pliku SVX. Dodatkowe, niepotrzebne informacje występujące po polu upadu (0.00 0.00 0.00 N I) można ręcznie usunąć, lub, alternatywnie, za pomocą odpowiedniego polecenia na początku pliku SVX nakazać ich ignorowanie:

*data normal from to tape compass clino ignoreall

Uwaga: Survex nie pozwala na używanie znaku kropki (.) w nazwach punktów. Na szczęście, podczas eksportu do formatu TopoRobot, PocketTopo zamienia znaki kropki na podkreślnik (_).

Metoda 3 - Import poprzez Microsoft Excel / OpenOffice

Zaleta: Nie wymaga dodatkowych programów (poza Excel / OpenOffice), Wada: Czasochłonna

Zarys metody: eksport z PocketTopo do formatu tekstowego (Text File), następnie import tego pliku do Microsoft Excel lub Open Office. Podczas importu należy w opcjach importu (trudno osiągalne w Microsoft Excel) ustawić typ pliku jako plik o stałych szerokościach kolumn i wskazać granice poszczególnych kolumn. Po zaimportowaniu danych do Excela należy ponumerować strzały boczne (w absolutnie dowolny sposób – ważne, aby każdy docelowy punkt strzału bocznego miał własny, unikalny numer), następnie poprzestawiać odpowiednio kolumny (do kolejności nadającej się do importu do pliku SVX) i zapisać jako plik tekstowy (lub w OpenOffice – jako plik CSV), rozdzielany znakami tabulacji. Taki plik można następnie wkleić do pliku SVX.

Organizacja plików SVX

Survex pozwala na zorganizowanie pomiarów na różne sposoby. Z jednej strony, można przechowywać wszystkie dane pomiarowe w jednym pliku. Z drugiej strony, co jest rozsądne w przypadku dużych projektów pomiarowych, dane z każdej akcji pomiarowej można trzymać w odrębnym pliku i łączyć ze sobą w jaskinie, następnie jaskinie w cały rejon itd.

Poprzez odpowiednie łączenie plików z danymi pomiarowymi można osiągnąć "świętego Graala" porządkowania wszelkich danych pomiarowych, który polega na tym, że dane są zapisane tylko raz i nie trzeba ich przepisywać z miejsca na miejsce.

Przykładowe, zalecana struktura bazy pomiarów dla dużego rejonu:

Łączenie ze sobą pomiarów w różnych plikach SVX

Aby połączyć ze sobą pomiary z dwóch (lub więcej) plików SVX, należy utworzyć „łączący je” plik SVX. Taki plik nie zawiera w swojej strukturze żadnych danych pomiarowych – a tylko instrukcje, jak dane z innych plików mają zostać połączone w jeden plik 3D. Przykładowa treść takiego pliku:

*begin nazwacalejjaskini
*include WielkaJaskinia\WielkaJaskinia.svx
*include bok\bok.svx
*include bok2\bok2.svx
*include gour\gour.svx
*include gour2\gour2.svx

*equate WielkaJaskinia.1_1 bok.0
*equate bok.7 bok2.7
*equate bok2.31 gour.1_9
*equate gour.1_0 gour2.1_0
*end nazwacalejjaskini

Uwaga: punkty poprzez które łączone są ze sobą sesje pomiarowe (polecenie *equate) muszą zostać „wyeksportowane” (polecenie *export) z poszczególnych plików z sesjami.

GPS i Survex

Za pomocą polecenia *fix można ustalić bezwzględne współrzędne prostokątne wybranego punktu pomiarowego. Mechanizm ten można wykorzystać do lokalizowania otworów jaskiń w ich rzeczywistych pozycjach GPS. Współrzędne GPS otworów należy uprzednio przeliczyć na współrzędne topograficzne. Chociaż teoretycznie możliwe jest używanie dowolnego układu współrzędnych topograficznych (w metrach), zdecydowanie zaleca się korzystanie z układu UTM.

Przykładowo, następująca linia:

*fix 49H-G2-007 272571.243 3318170.65 1182

... ustali pozycję punktu pomiarowego o nazwie 49H-G2-007 w miejscu X (Easting) = 272571.243, Y (Northing) = 3318170.65, Z (Altitude) = 1182.

Co ważne, każdy połączony ze sobą pomiarami zestaw punktów pomiarowych w Survex-ie musi posiadać przynajmniej jeden punkt o ustalonej pozycji (*fix). Jeśli nie zostanie ustalona pozycja żadnego punktu, Survex wybierze mniej lub bardziej przypadkowy punkt i nada mu pozycję (0, 0, 0). Automatyczne nadanie pozycji zadziała tylko, jeśli w przetwarzanych danych znajduje się jeden (1) spójny zestaw połączonych punktów.

Komunikat o błędzie „The following survey stations are not attached to a fixed point:” jest typowy dla sytuacji, w której Survex nie jest w stanie ustalić wzajemnego jednego lub więcej punktów pomiarowych (brak danych o pomiarach pomiędzy grupami lub jeden z ciągów nie dowiązany do punktu o ustalonej pozycji).

Strzały powierzchniowe; nie liczenie strzałów do długości

Aby Survex wyróżnił graficznie odcinek ciągu pomiarowego jako „ciąg powierzchniowy”, należy użyć przed definiującymi go danymi polecenia:

*flags surface

Używając go naprzemiennie z *flags not surface, można w jednym pliku mieszać ciąg powierzchniowy i podziemny. Ciąg powierzchniowy nie jest liczony do długości jaskini.

Aby fragment ciągu podziemnego nie był liczony do długości jaskini (np. pomiar powtórny, strzały boczne z PocketTopo), można użyć przed definującymi go danymi polecenia:

*flags splay

Zaliczanie do długości włącza się ponownie za pomocą *flags not splay