Sposób interpretacji importowanej tabeli CSV definiowany jest w pliku ImportCSV.xml. Przykładowy plik konfiguracyjny do czytania tabeli przedstawiony jest poniżej. Edytuje się tylko tekst wydrukowany w przykładzie czarną czcionką.

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE boost_serialization>
<boost_serialization signature="serialization::archive" version="12">
<Format class_id="0" tracking_level="0" version="0">
       <count>10</count>
       <item_version>0</item_version>
       <item class_id="1" tracking_level="0" version="0">
             <first>DataUTC</first>
             <second class_id="2" tracking_level="0" version="0">
                    <valueName>Date</valueName>
                    <format>%Y-%m-%d</format>
                    <correction>1.00000000000000000e+000</correction>
             </second>
       </item>
       <item>
             <first>CzasUTC</first>
             <second>
                    <valueName>Time</valueName>
                    <format>%H:%M:%S%f</format>
                    <correction>1.00000000000000000e+000</correction>
             </second>
       </item>
       <item>
             <first>Z</first>
             <second>
                    <valueName>Z</valueName>
                    <format>%lf</format>
                    <correction>1.00000000000000000e+000</correction>
             </second>
       </item>
       <item>
             <first>X</first>
             <second>
                    <valueName>X</valueName>
                    <format>%lf</format>
                    <correction>1.00000000000000000e+000</correction>
             </second>
       </item>
       <item>
             <first>Y</first>
             <second>
                    <valueName>Y</valueName>
                    <format>%lf</format>
                    <correction>1.00000000000000000e+000</correction>
             </second>
       </item>
       <item>
             <first>ML</first>
             <second>
                    <valueName>Magnitude</valueName>
                    <format>ML</format>
                    <correction>1.00000000000000000e+000</correction>
             </second>
       </item>
       <item>
             <first>ID_W</first>
             <second>
                    <valueName>ID</valueName>
                    <format>smi:igf.edu.pl%s</format>
                    <correction>1.00000000000000000e+000</correction>
             </second>
       </item>
       <item>
             <first>Lat</first>
             <second>
                    <valueName>Latitude</valueName>
                    <format>%lf</format>
                    <correction>1.00000000000000000e+000</correction>
             </second>
       </item>
       <item>
             <first>Lon</first>
             <second>
                    <valueName>Longitude</valueName>
                    <format>%lf</format>
                    <correction>1.00000000000000000e+000</correction>
             </second>
       </item>
       <item>
             <first>Kopalnia</first>
             <second>
                    <valueName>Region</valueName>
                    <format></format>
                    <correction>1.00000000000000000e+000</correction>
             </second>
       </item>
</Format>
<FileName></FileName>
<Separator>;</Separator>
<QuotationMark>"</QuotationMark>
<DecimalSeparator>.</DecimalSeparator>
<DepthOffset>0.00000000000000000e+000</DepthOffset>
<LocalPriority>1</LocalPriority>
<LocalTime>0</LocalTime>
</boost_serialization>

W przypadku braku pliku konfiguracyjnego program tworzy plik wzorcowy ImportCSV.tmp, który należy przeredagować i zmienić rozszerzenie na .xml.

Opis każdej kolumny w tabeli zdefiniowany jest w obiekcie <item>, w strukturze <Format> przy czym pierwsza pozycja zawiera pełny opis <item> z definicją class_id, tracking_level i version, natomiast opisy pozostałych kolumn zaczynają się od skróconej wersji <item>.

Każda kolumna jest opisana przez wartości <first> zawierającą nazwę kolumny i <second> opisującą interpretację kolumny. Nazwa kolumny musi się pokrywać z nazwą kolumny w pliku CSV. Wartość <second> zawiera trzy pozycje:

<valueName> zawiera typ informacji, jaka się pojawi w kolumnie. Może tam być jedna z nazw opisanych w podpunkcie Rodzaje kolumn importowanej tabeli CSV.

<format> zawiera format, w jakim będą importowane dane. Format zależy od rodzaju kolumny.

<correction> zawiera współczynnik korygujący wczytaną wartość. Jest ona mnożona przez ten współczynnik, aby wartość ta była we właściwych jednostkach i skali. W polu  tym musi być liczna. Nie może być puste nawet jak jest ignorowane.

Oprócz kolumn zdefiniowane są w pliku ogólne parametry czytania pliku CSV i pracy modułu.

<FileName>/var/www/html/Catalogs/MGMP</FileName>

Pole <FileName> opisuje nazwę i ścieżkę dostępu pliku z tabelą. W przypadku braku tej informacji – puste pole tekstowe, program SWIP5 prosi operatora o podanie nazwy pliku, przyjmując domyślne rozszerzenie .csv. Pole to nie może być puste, w przypadku pracy w tle z programem SWIP5C.

<Separator>;</Separator>

Pole <Separator> zawiera znak separatora. Może być więcej niż jeden znak.

<QuotationMark>"</QuotationMark>

Pole <QuotationMark> zawiera znaki cudzysłowu. Może być więcej niż jeden znak lub pusty tekst. Wewnątrz dwóch cudzysłowów nie obowiązuje znak separatora. Znaki cudzysłowu nie są zapisywane.

<DecimalSeparator>,</DecimalSeparator>

Pole <DecimalSeparator> zawiera tekst separatora części dziesiętnej liczb. Może być kropka lub przecinek.

<DepthOffset>0.00000000000000000e+000</DepthOffset>

Pole <DepthOffset> zawiera korekcję głębokości w metrach. W przypadku, gdy w tabeli głębokość jest podawana nie od poziomu morza, należy podać poziom odniesienia głebokosci w metrach nad poziom morza.

<LocalPriority>1</LocalPriority>

W przypadku jednoczesnego wystąpienia opisu położenia ogniska we współrzędnych geograficznych, pole <LocalPriority> zawiera informację, które współrzędne są priorytetowe. Jeżeli 1 to lokalizacja jest liczona z współrzędnych lokalnych: XYZ, jeżeli 0 to z współrzędnych geograficznych: szerokości, długości i głębokości. W przypadku, gdy występuje tylko jeden opis położenia ogniska, parametr ten jest ignorowany.

<LocalTime>0</LocalTime>

Pole <LocalTime> zawiera informacje czy czas jest lokalny - 1, czy UTC - 0. Jeżeli czas jest lokalny to przyjmuje się strefę czasową komputera i czas jest przeliczany na UTC.

<count>10</count>

Pole <count> zawiera informację o ilości kolumn. Liczba tu musi się zgadzać z ilością pól <item>.

  • No labels