Dane GPS EXIF
Metadane GPS EXIF osadzają w plikach obrazów i wideo współrzędne geograficzne (szerokość, długość geograficzna, wysokość), znacznik czasu UTC oraz dane kierunko...
EXIF (Exchangeable Image File Format) to standard metadanych osadzanych w cyfrowych zdjęciach i klatkach wideo, rejestrujący ustawienia aparatu, znacznik czasu i — kluczowo dla inspekcji — współrzędne GPS, wysokość oraz orientację kamery. TarmacView wykorzystuje EXIF GPS do geolokalizacji zdjęć i mapowania inspekcji dronem.
EXIF, akronim od Exchangeable Image File Format, to globalny standard metadanych służący do osadzania informacji opisowych, technicznych i geoprzestrzennych bezpośrednio w plikach obrazów cyfrowych. Opracowany pierwotnie przez Japan Electronics and Information Technology Industries Association (JEITA) w 1995 roku, standard jest obecnie utrzymywany wspólnie przez JEITA oraz Camera and Imaging Products Association (CIPA) pod oznaczeniem CIPA DC-008. Aktualna wersja to EXIF 2.32 (wydana w 2019), a EXIF 2.31 (2016) jest najszerzej zaimplementowaną bazą. Specyfikacja jest publikowana jako CIPA DC-008-Translation-2019 i jest swobodnie dostępna na stronie internetowej standardów CIPA.
Dane EXIF są przechowywane w plikach obrazów przy użyciu struktury metadanych TIFF (Tagged Image File Format), nawet gdy sam obraz jest skompresowany jako JPEG. W pliku JPEG, EXIF zajmuje segment znacznika APP1 (pierwszym bajtem jest 0xFFE1), umieszczony bezpośrednio po znaczniku SOI (Start of Image), a przed danymi kompresji JPEG. W plikach TIFF i DNG (Digital Negative), dane EXIF znajdują się w dedykowanych Katalogach Plików Obrazu (IFD). Ta struktura oznacza, że metadane EXIF można odczytać bez dekompresji danych obrazu — kluczowa cecha dla wydajnego przetwarzania wsadowego dużych zestawów zdjęć inspekcyjnych, które mogą liczyć tysiące na jeden pomiar.
Standard definiuje kilka grup IFD, które organizują metadane według funkcji: IFD0 (główne właściwości obrazu — wymiary, orientacja, kompresja, oprogramowanie, data/godzina, marka, model), IFD1 (właściwości miniatury), ExifIFD (parametry fotografowania — ekspozycja, przysłona, ISO, ogniskowa, lampa błyskowa, balans bieli, tryb sceny), GPS IFD (dane geolokalizacyjne — szerokość, długość geograficzna, wysokość, znacznik czasu, kierunek, prędkość) oraz Interoperability IFD (przestrzeń barw i zasady interoperacyjności). Każdy IFD może zawierać setki indywidualnych definicji tagów, każdy z unikalnym identyfikatorem szesnastkowym, typem danych (BYTE, ASCII, SHORT, LONG, RATIONAL itp.), licznikiem oraz wartością lub przesunięciem do wartości.

Dla inspekcji infrastruktury i skanowania dronem, EXIF jest głównym nośnikiem danych geoprzestrzennych i technicznych od momentu pozyskania przez cały potok przetwarzania. Każde zdjęcie z drona — niezależnie czy z DJI Phantom, Mavic, Matrice, Autel EVO, Skydio X10, czy niestandardowego wyposażenia kamerowego — osadza dane EXIF rejestrujące dokładnie gdzie, kiedy, jak i z jakiej wysokości każde zdjęcie zostało wykonane. Dane te stanowią fundament dla geotagowania zdjęć, rekonstrukcji fotogrametrycznej, generowania ortomozai k oraz automatycznej analizy inspekcyjnej zaimplementowanej w platformach takich jak TarmacView.
Standard EXIF jest jednym z trzech dominujących schematów metadanych w obrazowaniu cyfrowym, obok IPTC (International Press Telecommunications Council — skupiający się na metadanych opisowych i prawach autorskich dla prasy i wydawnictw) oraz XMP (Extensible Metadata Platform — framework oparty na XML do osadzania niestandardowych przestrzeni nazw metadanych). EXIF wyróżnia się precyzją i strukturą dla technicznych danych aparatu i GPS, podczas gdy XMP rozszerza możliwości EXIF o tagi specyficzne dla producenta — rozróżnienie kluczowe dla przepływów pracy w fotogrametrii dronów.
GPS IFD (Image File Directory) to prawdopodobnie najważniejsza część EXIF dla aplikacji inspekcji infrastruktury. Identyfikowany przez tag 0x8825 w IFD0, GPS IFD zawiera zestaw podtagów kodujących pozycję geograficzną, wysokość, kierunek, prędkość i znacznik czasu wykonania zdjęcia. Standard CIPA DC-008 definiuje te tagi w Sekcji 9 (GPS Tags) z rygorystycznymi regułami kodowania zapewniającymi interoperacyjność między urządzeniami i platformami oprogramowania.
GPSLatitude (tag 0x0002) i GPSLongitude (tag 0x0004) są przechowywane jako trzy wartości RATIONAL reprezentujące stopnie, minuty i sekundy — każda zakodowana jako 32-bitowa para licznik/mianownik. Na przykład szerokość geograficzna 25° 45’ 30,5" N jest przechowywana jako [25/1, 45/1, 305/10], czyli w formie wymiernej [25.000000, 45.000000, 30.500000]. Towarzyszące tagi GPSLatitudeRef (0x0001) i GPSLongitudeRef (0x0003) to pojedyncze znaki ASCII — odpowiednio „N" lub „S" i „E" lub „W" — określające półkulę. Tag GPSMapDatum (0x0012) rejestruje system odniesienia geodezyjnego; dla praktycznie wszystkich dronów konsumenckich i prosumenckich jest to „WGS-84" (World Geodetic System 1984).
GPSAltitude (tag 0x0006) jest przechowywany jako pojedyncza wartość RATIONAL reprezentująca metry nad lub pod elipsoidą WGS84. GPSAltitudeRef (0x0005) to pojedyncza wartość BYTE — 0 dla nad poziomem morza, 1 dla poniżej poziomu morza. Kluczowym rozróżnieniem, które wielu użytkowników błędnie rozumie, jest to, że wysokość GPS nie jest elewacją nad średnim poziomem morza (MSL) ani wysokością nad poziomem gruntu (AGL). Wysokość GPS to wysokość nad matematyczną elipsoidą referencyjną (WGS84), która może różnić się od lokalnego średniego poziomu morza o 20 do 100 metrów w zależności od separacji geoidy (zwanej też undulacją geoidy) w miejscu pozyskania. Na przykład w Denver, Kolorado (USA), elipsoida WGS84 znajduje się około 16 metrów poniżej lokalnej geoidy (NAVD88), więc odczyt wysokości GPS wynoszący 1600 m odpowiada elewacji MSL wynoszącej około 1584 m. To rozróżnienie jest udokumentowane w wymaganiach Załącznika 14 ICAO dotyczących pomiarów wysokości lotnisk oraz w ISO 19111 dla definicji systemów odniesienia współrzędnych.
| Tag GPS EXIF | ID Tagu (Hex) | Typ Danych | Opis |
|---|---|---|---|
| GPSLatitudeRef | 0x0001 | ASCII(2) | „N" lub „S" — półkula północna lub południowa |
| GPSLatitude | 0x0002 | RATIONAL(3) | Stopnie, minuty, sekundy jako wartości wymierne |
| GPSLongitudeRef | 0x0003 | ASCII(2) | „E" lub „W" — półkula wschodnia lub zachodnia |
| GPSLongitude | 0x0004 | RATIONAL(3) | Stopnie, minuty, sekundy jako wartości wymierne |
| GPSAltitudeRef | 0x0005 | BYTE | 0 = nad poziomem morza, 1 = poniżej poziomu morza |
| GPSAltitude | 0x0006 | RATIONAL | Wysokość w metrach nad elipsoidą referencyjną WGS84 |
| GPSTimeStamp | 0x0007 | RATIONAL(3) | Czas UTC (godziny, minuty, sekundy) poprawki GPS |
| GPSDateStamp | 0x001D | ASCII(11) | Ciąg daty UTC: „RRRR:MM:DD" |
| GPSSpeedRef | 0x000C | ASCII(2) | „K" dla km/h, „M" dla mph, „N" dla węzłów |
| GPSSpeed | 0x000D | RATIONAL | Prędkość względem gruntu w jednostkach określonych przez GPSSpeedRef |
| GPSTrackRef | 0x000E | ASCII(2) | „T" dla północy rzeczywistej, „M" dla północy magnetycznej |
| GPSTrack | 0x000F | RATIONAL | Kierunek ruchu w stopniach zgodnie z ruchem wskazówek zegara od północy |
| GPSImgDirectionRef | 0x0010 | ASCII(2) | „T" lub „M" dla odniesienia kierunku obrazu |
| GPSImgDirection | 0x0011 | RATIONAL | Kierunek, w którym skierowany jest aparat, w stopniach |
| GPSMapDatum | 0x0012 | ASCII | Datum geodezyjny — zazwyczaj „WGS-84" |
| GPSHPositioningError | 0x001F | RATIONAL | Poziomy współczynnik dokładności (HDOP) w metrach |
GPSTimeStamp (0x0007) przechowuje czas UTC poprawki GPS jako trzy wartości RATIONAL (godziny, minuty, sekundy), podczas gdy GPSDateStamp (0x001D) przechowuje datę UTC jako 11-znakowy ciąg ASCII w formacie „RRRR:MM:DD". Razem zapewniają znacznik czasu GPS — odrębny od tagu EXIF DateTimeOriginal (0x9003 w ExifIFD), który rejestruje czas z wewnętrznego zegara aparatu w momencie naciśnięcia migawki. Znacznik czasu GPS pochodzi z atomowych zegarów satelitarnych i jest znacznie bardziej wiarygodny do precyzyjnego chronologicznego porządkowania zdjęć inspekcyjnych, szczególnie podczas pomiarów przekraczających strefy czasowe lub przejścia na czas letni/zimowy.
Tag GPSTrack (0x000F) rejestruje kierunek ruchu w momencie pozyskania, mierzony w stopniach zgodnie z ruchem wskazówek zegara od północy rzeczywistej (lub magnetycznej, jak wskazuje GPSTrackRef). Tag GPSImgDirection (0x0011) rejestruje kierunek, w którym skierowany jest aparat — krytycznie ważny w inspekcji dronem, gdzie gimbal kamery może być zorientowany niezależnie od kierunku lotu statku powietrznego. W przypadku dronów DJI lecących standardowe misje nadiru, GPSImgDirection jest zazwyczaj równy kierunkowi lotu, ale w przypadku inspekcji skośnej filarów mostów, elewacji budynków lub krawędzi dróg startowych, kierunek yaw gimbala zapewnia kąt patrzenia kamery niezbędny do fotogrametrycznej estymacji orientacji.
GPSHPositioningError (0x001F) — dodany w EXIF 2.31 — raportuje szacowany błąd pozycjonowania poziomego w metrach. Dla dronów wyposażonych w RTK wartość ta może wynosić 0,02-0,05 (2-5 cm), podczas gdy dla standardowych odbiorników GPS/GLONASS waha się od 1,0 do 5,0 metrów. Tag ten umożliwia automatyczne filtrowanie jakości podczas selekcji obrazów do przetwarzania fotogrametrycznego — zdjęcia z GPSHPositioningError przekraczającym konfigurowalny próg mogą być oznaczane lub wykluczane w celu utrzymania dokładności rekonstrukcji.
Tag orientacji EXIF (tag 0x0112, znajdujący się w IFD0) jest jednym z najczęściej błędnie interpretowanych pól EXIF. Przechowuje pojedynczą liczbę całkowitą SHORT (1 do 8) opisującą obrót i odbicie lustrzane danych pikseli obrazu względem naturalnych osi współrzędnych sensora aparatu. Osiem wartości zdefiniowanych w standardzie EXIF to: 1 = normalna (obrót 0°), 2 = odbicie lustrzane w poziomie (przerzucenie lewo-prawo), 3 = obrócona o 180°, 4 = odbicie lustrzane w pionie (przerzucenie góra-dół), 5 = odbicie lustrzane w poziomie i obrócona o 270° zgodnie z ruchem wskazówek zegara, 6 = obrócona o 90° zgodnie z ruchem wskazówek zegara, 7 = odbicie lustrzane w poziomie i obrócona o 90° zgodnie z ruchem wskazówek zegara, 8 = obrócona o 270° zgodnie z ruchem wskazówek zegara. Tag ten umożliwia aparatom i smartfonom wskazanie, jak obraz powinien być wyświetlany do prawidłowego oglądania, bez fizycznego obracania danych pikseli — co stanowi znaczącą optymalizację wydajności.
W obrazach inspekcyjnych z drona tag orientacji prawie zawsze ma wartość 1 (normalna), ponieważ kamery dronów są montowane na stabilizowanych gimbalach utrzymujących sensor w stałej orientacji względem horyzontu. Jednak orientacja kamery istotna dla analizy geoprzestrzennej — kąty roll, pitch i yaw osi optycznej kamery — NIE jest przechowywana w standardowym IFD EXIF. Zamiast tego dane te są zapisywane przez producentów dronów w własnych przestrzeniach nazw XMP rozszerzających strukturę EXIF.
DJI zapisuje orientację kamery w przestrzeni nazw XMP http://www.dji.com/drone-dji/1.0/ z tagami GimbalPitchDegree, GimbalRollDegree i GimbalYawDegree. Reprezentują one orientację gimbala względem lokalnego poziomu: pitch jest dodatni, gdy kamera przechyla się w górę od nadiru (90° = horyzont do przodu, -90° = horyzont do tyłu), roll to obrót wokół osi wzdłużnej (dodatni = prawa strona w dół), a yaw to azymut kompasu kamery (0° = północ, dodatni zgodnie z ruchem wskazówek zegara). Dla misji mapowania nadiru, pitch gimbala wynosi zazwyczaj -90° (prosto w dół), roll gimbala to 0°, a yaw gimbala jest równy kierunkowi lotu statku powietrznego.
DJI zapisuje również FlightPitchDegree, FlightRollDegree i FlightYawDegree — położenie samego kadłuba drona, które różni się od orientacji gimbala, gdy gimbal aktywnie kompensuje ruch statku powietrznego. Podczas standardowej misji mapowania kontroler lotu utrzymuje gimbal na zadanym kącie, podczas gdy dron może pochylać się do przodu podczas lotu (zazwyczaj 2-8° przy prędkościach mapowania 5-15 m/s). Oprogramowanie fotogrametryczne, takie jak Pix4Dmapper, Agisoft Metashape i OpenDroneMap, wykorzystuje orientację gimbala (nie położenie lotu) jako początkową estymację orientacji kamery do wyrównania wiązki, ponieważ gimbal reprezentuje rzeczywistą oś optyczną kamery.
Drony Autel przechowują orientację inaczej. Przestrzeń nazw XMP dla telemetrii Autel obejmuje tagi <Camera:Pitch> i <Camera:Yaw>, ale roll zazwyczaj nie jest rejestrowany. Wartości orientacji Autel używają innej konwencji znaku niż DJI — dodatni pitch oznacza, że kamera jest przechylona w dół (w kierunku nadiru), co jest przeciwną konwencją do DJI. Ta różnica konwencji znaku jest znanym źródłem błędów konfiguracji podczas przetwarzania zestawów danych od różnych producentów.
Drony Skydio, szczególnie seria X10, osadzają orientację kamery w przestrzeni nazw XMP z tagami CameraOrientation, które stosują konwencję fotogrametryczną (Omega, Phi, Kappa lub Yaw, Pitch, Roll w zależności od wersji oprogramowania). Metadane Skydio obejmują również parametry wewnętrzne kalibracji kamery (ogniskowa, punkt główny, współczynniki dystorsji obiektywu) bezpośrednio w pliku obrazu — kluczowe dla przetwarzania fotogrametrycznego bez osobnego etapu kalibracji.
Dla oprogramowania fotogrametrycznego, które nie ma natywnego wsparcia dla producenckich tagów XMP, początkowa orientacja kamery jest zazwyczaj estymowana wyłącznie ze śladu GPS — poprzez porównanie kolejnych pozycji obrazów w celu wyznaczenia kierunku ruchu i założeniu, że kamera jest skierowana w nadir (prosto w dół). To założenie działa odpowiednio dla standardowych misji mapowania siatki, ale zawodzi w przypadku skośnych lotów inspekcyjnych, gdzie kamera jest celowo skierowana pod kątem 15-45° od pionu. W takich przypadkach orientacja gimbala z XMP stanowi jedyną wiarygodną początkową estymację, a jej brak może powodować niepowodzenia wyrównania fotogrametrycznego.
Konwencja rotacji omega, phi, kappa (ω, φ, κ) powszechnie stosowana w fotogrametrii różni się od konwencji yaw, pitch, roll używanej w lotnictwie i metadanych dronów. Omega (ω) to obrót wokół osi X (odpowiednik roll), phi (φ) to obrót wokół osi Y (pitch), a kappa (κ) to obrót wokół osi Z (yaw). Konwersja między tymi dwiema konwencjami wymaga starannego traktowania znaku i mapowania osi współrzędnych — zadanie, które oprogramowanie fotogrametryczne obsługuje wewnętrznie, ale które inżynierowie powinni rozumieć podczas walidacji metadanych orientacji kamery.
ExifTool, stworzony i utrzymywany przez Phila Harveya, to najbardziej wszechstronne i najczęściej używane narzędzie do odczytu, zapisu i edycji metadanych EXIF na wszystkich systemach operacyjnych (Windows, macOS, Linux). Napisany w Perlu i dystrybuowany jako samodzielny plik wykonywalny, ExifTool obsługuje ponad 11 000 nazw tagów w ramach EXIF, IPTC, XMP, ICC Profile oraz setek producenckich przestrzeni nazw MakerNote. Narzędzie jest bezpłatne i open source na licencji GNU General Public License (GPL) wersja 1 lub Artistic License.
Podstawowa struktura polecenia do odczytu metadanych to:
exiftool -NAZWA_TAGU -NAZWA_TAGU nazwapliku
Aby wyodrębnić współrzędne GPS z pojedynczego zdjęcia dronem w formacie dziesiętnym:
exiftool -GPSLatitude -GPSLongitude -GPSAltitude -n DJI_0042.JPG
Flaga -n wypisuje wartości liczbowe w stopniach dziesiętnych, metrach i sekundach zamiast domyślnych sformatowanych ciągów stopnie-minuty-sekundy — niezbędne do programowego przetwarzania. Bez -n, szerokość GPS jest wypisywana jako „25 deg 45’ 30.50""", co wymaga parsowania.
Wsadowa ekstrakcja do CSV dla całego lotu pomiarowego:
exiftool -csv -GPSLatitude -GPSLongitude -GPSAltitude -GPSHPositioningError -DateTimeOriginal -RelativeAltitude -GimbalPitchDegree -GimbalYawDegree -n *.JPG > survey_metadata.csv
To tworzy tabelaryczną strukturę z jednym wierszem na zdjęcie i kolumnami dla każdego żądanego tagu. Flaga -csv dodaje wiersz nagłówka, co sprawia, że dane wyjściowe są bezpośrednio importowalne do oprogramowania GIS, arkuszy kalkulacyjnych lub systemów bazodanowych.
Ekstrakcja całej telemetrii specyficznej dla DJI:
exiftool -XMP-drone-dji:all DJI_0042.JPG
To filtruje dane wyjściowe tylko do tagów w przestrzeni nazw XMP DJI, pokazując pola takie jak AbsoluteAltitude, RelativeAltitude, GimbalPitchDegree, GimbalRollDegree, GimbalYawDegree, FlightPitchDegree, FlightYawDegree, FlightXSpeed, FlightYSpeed, FlightZSpeed, CalibratedFocalLength i CalibratedOpticalCenterX/Y.
Zapisywanie współrzędnych GPS do obrazu, który ich nie posiada:
exiftool -GPSLatitude=25.759167 -GPSLatitudeRef=N -GPSLongitude=-80.152778 -GPSLongitudeRef=W -GPSAltitude=12.5 -GPSAltitudeRef=0 image.jpg
Jest to operacja używana do geotagowania obrazów, gdy GPS był niedostępny w momencie pozyskania — na przykład przy użyciu śladu GPX z kontrolera drona do retroaktywnego przypisania pozycji do każdego zdjęcia na podstawie zsynchronizowanych znaczników czasu.

Fork Python Imaging Library (PIL) o nazwie Pillow zapewnia natywną obsługę odczytu EXIF przez metodę _getexif() obiektu Image. Choć nazwa metody jest oznaczona jako chroniona (prefiks podkreślenia), jest powszechnie używana i stabilna w wersjach Pillow 8.0 aż do obecnej (10.x). Metoda zwraca słownik mapujący numeryczne ID tagów EXIF na ich wartości:
from PIL import Image
from PIL.ExifTags import TAGS, GPSTAGS
img = Image.open('drone_photo.JPG')
exif_data = img._getexif()
if exif_data:
for tag_id, value in exif_data.items():
tag_name = TAGS.get(tag_id, tag_id)
print(f"{tag_name}: {value}")
Wyodrębnienie współrzędnych GPS wymaga dostępu do pod-IFD GPSInfo (ID tagu 34853, zdefiniowane jako TAGS.get(34853) = „GPSInfo"), a następnie przetworzenia pod-słownika przy użyciu GPSTAGS dla czytelnych nazw kluczy:
gps_info = exif_data.get(34853, {})
for k, v in gps_info.items():
print(f"{GPSTAGS.get(k, k)}: {v}")
Pillow zwraca współrzędne GPS jako krotki wartości wymiernych (licznik, mianownik), wymagające konwersji na stopnie dziesiętne do użycia w aplikacjach mapowania i fotogrametrii. Wzór konwersji:
stopnie_dziesiętne = stopnie + minuty/60 + sekundy/3600
Pillow udostępnia moduł ExifTags z klasami enum (PIL.ExifTags.Base, PIL.ExifTags.GPS, PIL.ExifTags.IFD itp.), które oferują czytelne dla człowieka stałe dla najczęściej używanych ID tagów EXIF, zmniejszając potrzebę użycia zakodowanych na stałe wartości ID tagów w kodzie produkcyjnym.
Piexif to czysta biblioteka Pythona (bez zewnętrznych zależności) zaprojektowana specjalnie do odczytu i zapisu metadanych EXIF. Zapewnia czystsze API niż Pillow do manipulacji EXIF i jest szczególnie dobrze dostosowana do zapisywania tagów GPS w obrazach:
import piexif
from piexif import GPSIFD, TAGS
def to_deg(value):
d, m, s = float(value[:2]), float(value[2:4]), float(value[4:])
return [(d, 1), (m, 1), (int(s * 1000), 1000)]
# Odczyt EXIF
exif_dict = piexif.load('image.JPG')
gps = exif_dict.get('GPS', {})
lat = gps.get(GPSIFD.GPSLatitude)
lng = gps.get(GPSIFD.GPSLongitude)
# Zapis GPS do obrazu
exif_dict['GPS'][GPSIFD.GPSLatitude] = to_deg("2545.500")
exif_dict['GPS'][GPSIFD.GPSLatitudeRef] = 'N'
exif_bytes = piexif.dump(exif_dict)
piexif.insert(exif_bytes, 'image.JPG')
Piexif obsługuje również ekstrakcję miniatur, obsługę MakerNote i wsadowe usuwanie metadanych (przydatne w przetwarzaniu zorientowanym na prywatność, gdzie dane GPS muszą być usunięte z publikowanych obrazów).
Exifread (pakiet PyPI exifread) to biblioteka Pythona wyspecjalizowana w ekstrakcji EXIF z obsługą szerszego zakresu producenckich tagów MakerNote niż Pillow. W przeciwieństwie do ograniczonej obsługi MakerNote w Pillow, exifread potrafi dekodować formaty metadanych Canon, Nikon, DJI i innych producentów do ustrukturyzowanych pól:
import exifread
with open('drone_photo.JPG', 'rb') as f:
tags = exifread.process_file(f, details=True)
for tag, value in tags.items():
if 'GPS' in tag:
print(f"{tag}: {value}")
Exifread zwraca wszystkie tagi (w tym GPS, EXIF, MakerNote i miniaturę) jako płaski słownik z w pełni kwalifikowanymi nazwami kluczy, takimi jak 'GPS GPSLatitude', 'EXIF DateTimeOriginal' i 'MakerNote Unknown'. Parametr details=True próbuje dekodować dane producenta MakerNote do ustrukturyzowanych pól zamiast pozostawiać je jako surowe tablice bajtów.
DJI jest dominującym producentem na rynku inspekcji dronami, a jego implementacja metadanych jest najbardziej wszechstronna i najlepiej udokumentowana (choć poprzez inżynierię wsteczną i wysiłek społeczności, a nie oficjalną publikację). DJI zapisuje dane EXIF oraz rozbudowany zestaw tagów przestrzeni nazw XMP pod URI http://www.dji.com/drone-dji/1.0/.
Kompletny zestaw tagów XMP DJI w obecnym oprogramowaniu (od 2022+ dla Mavic 3, Matrice 30/300/350, Phantom 4 RTK) obejmuje: GpsLatitude i GpsLongitude (stopnie dziesiętne, osiem miejsc po przecinku), AbsoluteAltitude (barometryczna estymata MSL w metrach, zmiennoprzecinkowa), RelativeAltitude (wysokość nad punktem startu w metrach), GimbalPitchDegree, GimbalRollDegree, GimbalYawDegree (kąty orientacji gimbala), FlightPitchDegree, FlightRollDegree, FlightYawDegree (położenie statku powietrznego), FlightXSpeed, FlightYSpeed, FlightZSpeed (składowe prędkości w m/s w lokalnych współrzędnych bryły), CalibratedFocalLength (w mm, uwzględniająca różnice produkcyjne obiektywu), CalibratedOpticalCenterX i CalibratedOpticalCenterY (przesunięcie punktu głównego w pikselach), LensDistortionParam (seria współczynników dystorsji do korekcji obiektywu w fotogrametrii) oraz SelfData (serializowany blok binarny zawierający dodatkową telemetrię — akcelerometr, żyroskop, magnetometr i informacje satelitarne).
Jednym z krytycznych zagadnień specyficznych dla DJI jest zjawisko podwójnego zapisu GPS. DJI zapisuje współrzędne GPS w standardowych tagach EXIF GPS ORAZ w przestrzeni nazw XMP drone-dji, ale wartości mogą się różnić. Tagi EXIF GPS zazwyczaj używają pozycji zgłoszonej przez odbiornik GPS w momencie aktywacji migawki. Tagi XMP GpsLatitude/GpsLongitude czasami używają wygładzonej lub uśrednionej pozycji z kontrolera lotu. Różnice rzędu 0,5 do 2 metrów między nimi są powszechne i stanowią znane źródło nieporozumień w fotogrametrii, gdy oprogramowanie domyślnie wybiera jedno lub drugie źródło.
Dla kamer termowizyjnych DJI (Mavic 3T, Matrice 30T, Zenmuse H20T, Zenmuse XT2), pliki RJPEG (radiometryczne JPEG) zawierają dodatkowe dane EXIF i XMP dla parametrów termicznych — ustawienia emisyjności, temperatury odbitej, temperatury atmosferycznej, odległości obiektu i wilgotności względnej. Tagi te są niezbędne do konwersji surowych wartości pikseli termicznych na skalibrowane odczyty temperatury i są przechowywane w segmencie znacznika APP4 (nie APP1, gdzie znajduje się zwykły EXIF).
Autel (należący do Shenzhen Autel Intelligent Technology) używa innej struktury metadanych. Przestrzeń nazw XMP http://www.autel.com/autel/1.0/ zawiera tagi takie jak GPSLatitude, GPSLongitude, Altitude (ASL — nad poziomem morza), Pitch, Yaw i Roll (choć roll jest niespójnie rejestrowany w różnych wersjach oprogramowania). Wysokość w Autel jest domyślnie przechowywana jako ASL, co oznacza, że wartość reprezentuje szacowaną elewację nad średnim poziomem morza, a nie wysokość nad poziomem gruntu. W zastosowaniach mapowania użytkownicy muszą znać elewację gruntu w punkcie startu, aby wyznaczyć AGL.
Obrazy Autel nie zawierają również rozbudowanych danych kalibracyjnych obiektywu, które DJI dostarcza w XMP. Tagi CalibratedFocalLength, CalibratedOpticalCenter i LensDistortionParam są nieobecne, co oznacza, że oprogramowanie fotogrametryczne musi estymować parametry kalibracji kamery podczas wyrównania wiązki — wymagając więcej punktów kontroli naziemnej i potencjalnie zmniejszając dokładność w aplikacjach inspekcji precyzyjnej.
Skydio (przejęte przez Amazon w 2023) stosuje inne podejście: modele X10 i wcześniejsze S2+ stawiają na metadane klasy geodezyjnej. Przestrzeń nazw XMP obejmuje tagi GPSXYAccuracy i GPSZAccuracy raportujące szacowaną dokładność poziomą i pionową fixu GPS, umożliwiając automatyczne przesiewanie jakościowe. Skydio udostępnia również dane CameraIntrinsics, w tym ogniskową (w pikselach), punkt główny (cx, cy) i parametry dystorsji obiektywu bezpośrednio w metadanych obrazu, skracając czas wymagany na samokalibrację podczas przetwarzania fotogrametrycznego. Dla modelu X10 RTK, towarzyszące pliki .MRK dostarczają obserwacje GNSS fazy nośnej do poprawek post-processed kinematic (PPK), całkowicie omijając ograniczoną dokładność wbudowanego EXIF GPS.
Kamery GoPro są często używane w inspekcjach bliskiego zasięgu i inspekcjach mostów FPV. Implementacja EXIF w GoPro jest standardowa (metadane aparatu plus GPS w modelach Hero), ale dokładność GPS (zazwyczaj 3-8 metrów) i dystorsja obiektywu typu rybie oko (poważna — stabilizacja HyperSmooth GoPro przycina i deformuje obrazy) sprawiają, że obrazy z GoPro są trudne w fotogrametrii bez rozbudowanej kalibracji. GoPro przechowuje GPS tylko w standardowych tagach EXIF (brak rozszerzeń XMP producenta), ograniczając telemetrię do szerokości i długości geograficznej, wysokości i znacznika czasu.
Niestandardowe wyposażenie kamerowe (Sony α-series, Canon EOS w połączeniu z zewnętrznymi rejestratorami GNSS) polega wyłącznie na standardowych tagach EXIF dla danych GPS. Bez rozszerzeń XMP producenta, potok fotogrametryczny musi estymować orientację kamery wyłącznie na podstawie dopasowania cech obrazu — wykonalne w warunkach dobrej tekstury, ale podatne na niepowodzenie na powierzchniach o niskiej teksturze (świeży asfalt, jednolity beton) powszechnych w inspekcji nawierzchni.
Dokładność EXIF GPS zależy od sprzętu odbiornika GNSS, dostępności konstelacji satelitarnych, warunków atmosferycznych i środowiska sygnałowego w momencie pozyskania. Drony konsumenckie (seria DJI Mini, Mavic Air, Phantom 4 non-RTK) używają odbiorników jednoczęstotliwościowych (L1) GPS/GLONASS z dokładnością poziomą 2-5 metrów w optymalnych warunkach i 5-10 metrów lub gorzej w kanionach miejskich, w pobliżu refleksyjnych konstrukcji lub pod gęstym zadrzewieniem. Dokładność ta jest udokumentowana w specyfikacjach DJI i potwierdzona niezależnymi testami opublikowanymi w literaturze fotogrametrycznej.
Drony wyposażone w RTK (Real-Time Kinematic) (DJI Phantom 4 RTK, Mavic 3 RTK, Matrice 350 RTK) osiągają dokładność poziomą 2-5 cm poprzez odbieranie poprawek fazy nośnej ze stacji bazowej przez łącze radiowe (typowe 900 MHz lub 4G LTE). Tag GPSHPositioningError w EXIF raportuje szacowany błąd poziomy — dla przechwytywania w trybie RTK wartość ta powinna być poniżej 0,05 m (5 cm). Przepływy pracy PPK (Post-Processed Kinematic) zbierają surowe obserwacje GNSS na pokładzie i stosują poprawki po locie, osiągając podobną dokładność bez wymogu łącza danych w czasie rzeczywistym.
Dokładność wysokości jest znacznie gorsza niż dokładność pozioma dla wszystkich dronów bez RTK. EXIF GPSAltitude odnosi się do elipsoidy WGS84, a dokładność pionowa samodzielnego GPS jest zazwyczaj 1,5 do 2 razy gorsza niż dokładność pozioma (3-15 metrów vs 2-5 metrów). Wysokość barometryczna DJI (AbsoluteAltitude w XMP) jest bardziej stabilna krótkoterminowo, ale dryfuje wraz ze zmianami ciśnienia atmosferycznego. Badania porównujące wysokość barometryczną z pomierzonymi punktami kontroli naziemnej raportują błędy bezwzględne rzędu 5-30 metrów w zależności od warunków atmosferycznych w dniu pomiaru.
| Czynnik dokładności | GPS konsumencki (non-RTK) | RTK/PPK | Pionowa (non-RTK) | Pionowa (RTK/PPK) |
|---|---|---|---|---|
| Pozioma (RMS) | 2-5 m | 0,02-0,05 m | 3-15 m | 0,05-0,10 m |
| Typowy tag EXIF | GPSLatitude/Longitude | GPSLatitude/Longitude | GPSAltitude | GPSAltitude |
| GPSHPositioningError | 1,0-5,0 m | 0,02-0,05 m | N/D | N/D |
| Wpływ wielodrożności | Znaczący | Korekta przez RTK | Znaczący | Umiarkowany |
| Przykłady dronów | Mavic Air, Mini, Phantom 4 | P4 RTK, M3 RTK, M350 | Wszystkie non-RTK | P4 RTK, M350 RTK |
Spoofing GPS i zakłócenia sygnału to rosnące problemy w operacjach inspekcyjnych dronami w wrażliwych lub kontestowanych środowiskach. Ataki spoofingowe wstrzykują fałszywe sygnały GPS, powodując rejestrowanie przez drona nieprawidłowych współrzędnych w metadanych EXIF bez wiedzy pilota. Badania z University of Luxembourg oraz programu FAA UAS Detection and Mitigation wykazały, że standardowe tagi EXIF GPS nie zapewniają żadnego uwierzytelnienia kryptograficznego — rejestrowane współrzędne są tym, co odbiornik obliczy z odebranych sygnałów satelitarnych. W środowiskach lotniskowych o wysokich wymogach bezpieczeństwa niezbędna jest weryfikacja EXIF GPS względem niezależnych źródeł (korekcje stacji bazowej, punkty kontroli naziemnej).
Wiarygodność znacznika czasu jest generalnie wysoka, ponieważ czas GPS (zarejestrowany w GPSTimeStamp i GPSDateStamp) pochodzi z atomowych zegarów konstelacji satelitarnych, dokładnych do nanosekund. Jednak tag EXIF DateTimeOriginal używa wewnętrznego zegara systemowego drona, który może dryfować o 1-10 sekund na godzinę lotu, szczególnie w niskich temperaturach, gdzie oscylatory kwarcowe zmieniają częstotliwość. W przepływach pracy inspekcyjnej wymagających precyzyjnej korelacji czasowej między obrazami a zewnętrznymi danymi sensorowymi, znacznik czasu GPS powinien być preferowany nad znacznikiem czasu zegara aparatu.
TarmacView pobiera metadane EXIF ze zdjęć inspekcyjnych dronem jako główne źródło danych do geolokalizacji uszkodzeń nawierzchni, chronologicznego porządkowania zdjęć inspekcyjnych i inicjalizacji rekonstrukcji fotogrametrycznej. Potok przetwarzania odczytuje GPS IFD (tagi 0x0001-0x001F) w celu wyodrębnienia szerokości i długości geograficznej, wysokości oraz znacznika czasu GPS dla każdego zdjęcia w pomiarze inspekcyjnym.
Geotagowanie zdjęć w TarmacView mapuje każde zdjęcie inspekcyjne do jego lokalizacji pozyskania na interaktywnej mapie nawierzchni. Współrzędne geograficzne z EXIF GPSLatitude i GPSLongitude umieszczają ikonę zdjęcia w dokładnej pozycji, w której znajdował się dron w momencie wyzwolenia migawki. W inspekcji nawierzchni umożliwia to inspektorom kliknięcie dowolnego miejsca na ortomozai ce i natychmiastowe pobranie wszystkich zdjęć pokrywających ten obszar, filtrowanych według daty, lotu i rodzaju inspekcji.
Obliczanie GSD na podstawie wysokości wykorzystuje GPSAltitude (lub RelativeAltitude z XMP DJI) w połączeniu ze skalibrowaną ogniskową i wymiarami sensora aparatu do obliczenia Ground Sample Distance — rzeczywistego wymiaru reprezentowanego przez każdy piksel. GSD to krytyczny parametr dla dokładnego pomiaru szerokości pęknięć: GSD wynoszący 1 mm/piksel umożliwia wiarygodne wykrywanie pęknięć o szerokości 0,3-3 mm, podczas gdy GSD wynoszący 3 mm/piksel nie jest w stanie rozróżnić pęknięć submilimetrowych. TarmacView używa wysokości EXIF do obliczenia GSD dla każdego zdjęcia i oznacza zdjęcia, gdzie wysokość przekroczyła zaplanowane tolerancje (wskazując na potencjalną niespójność GSD w całym pomiarze).
Porządkowanie czasowe używa znacznika czasu EXIF DateTimeOriginal lub GPS do sekwencjonowania zdjęć chronologicznie, umożliwiając automatyczną rekonstrukcję ścieżki lotu i walidację pokrycia. Luki w sekwencji znaczników czasu wskazują na brakujące zdjęcia (awaria wyzwalania, błąd zapisu na karcie), które mogą pozostawić luki w pokryciu ortomozai ki.
Kalibracja kamery — dane z EXIF (FocalLength, FocalLengthIn35mmFilm oraz producenckie tagi XMP, w tym CalibratedFocalLength, CalibratedOpticalCenterX/Y, LensDistortionParam) inicjalizują fotogrametryczny model kamery. Dostarczenie dokładnych wartości początkowych dla ogniskowej i punktu głównego skraca czas zbieżności wyrównania wiązki i zwiększa prawdopodobieństwo prawidłowego wyrównania, szczególnie w pomiarach z ograniczoną teksturą lub trudnymi warunkami oświetleniowymi.
Geotagowanie zdjęć to proces przypisywania współrzędnych geograficznych (szerokości, długości geograficznej i opcjonalnie wysokości) do zdjęć cyfrowych. Gdy aparat lub dron ma odbiornik GPS, współrzędne są automatycznie zapisywane w GPS IFD EXIF w momencie pozyskania. Dla obrazów, które nie mają danych GPS, geotagowanie może być wykonane post-hoc poprzez dopasowanie znacznika czasu obrazu do zewnętrznego śladu GPS (GPX, NMEA lub format własny).
Standardowy przepływ pracy geotagowania dla obrazów inspekcyjnych z drona przebiega następująco:
Krok 1 — Pozyskanie śladu GPS: Podczas lotu kontroler drona lub osobny rejestrator GPS zapisuje pozycję i czas z częstotliwością 1-10 Hz. Samodzielne rejestratory GPS (Garmin, Bad Elf, Dual) zapewniają wyższą dokładność niż większość odbiorników GPS w dronach i są używane w precyzyjnych przepływach pracy inspekcyjnej.
Krok 2 — Synchronizacja znaczników czasu: Znaczniki czasu obrazów (z EXIF DateTimeOriginal) muszą być zsynchronizowane ze znacznikami czasu śladu GPS z dokładnością do ułamka sekundy. Dryf zegara między zegarem aparatu a zegarem GPS jest korygowany przez obliczenie przesunięcia między znacznikiem czasu GPS aparatu (jeśli dostępny) a DateTimeOriginal.
Krok 3 — Interpolacja współrzędnych: Ponieważ punkty śladu GPS są rejestrowane z wyższą częstotliwością niż obrazy (np. 5 Hz GPS vs 0,5 Hz wyzwalanie migawki), dokładna pozycja kamery w każdym momencie wyzwolenia migawki jest interpolowana z najbliższych punktów śladu GPS. Standardowa jest interpolacja liniowa między fixem GPS bezpośrednio przed i po znaczniku czasu obrazu, choć interpolacja funkcjami sklejanymi sześciennymi lepiej odwzorowuje zakrzywioną ścieżkę lotu podczas zakrętów.
Krok 4 — Zapis EXIF: Interpolowane współrzędne, wysokość i kierunek są zapisywane w GPS IFD EXIF pliku obrazu za pomocą ExifTool lub bibliotek programistycznych (piexif, Pillow). Oryginalny plik powinien być zachowany z kopią zapasową przed jakimikolwiek modyfikacjami EXIF.
Narzędzia wyspecjalizowane w geotagowaniu zdjęć obejmują GeoSetter (Windows, freeware, obsługuje zapis EXIF i XMP z podglądem Google Earth), GPicSync (wieloplatformowy, oparty na Pythonie), Geosetter Friedemanna Schmidta oraz podejście z wiersza poleceń exiftool z plikami szablonów formatu do konwersji GPX-na-EXIF. Dla wsadowego geotagowania w potokach inspekcyjnych, niestandardowe skrypty używające narzędzi opisanych w Sekcji 4 zapewniają największą kontrolę i możliwości integracji.
Dane EXIF mogą być nieobecne, obcięte lub uszkodzone poprzez kilka mechanizmów:
Konwersja i ponowne zapisywanie plików: Wiele narzędzi do przetwarzania obrazów (przeglądarki obrazów, uploadery internetowe, narzędzia do zrzutów ekranu) zapisuje obrazy bez zachowania metadanych EXIF. Najgorsze pod tym względem są przeglądarki internetowe, aplikacje do przesyłania wiadomości (WhatsApp, Telegram kompresują i usuwają metadane) oraz platformy mediów społecznościowych. Przepuszczenie zdjęcia JPG z drona przez którykolwiek z tych potoków bezpowrotnie niszczy dane EXIF GPS, chyba że istnieje kopia zapasowa.
Niekompletny transfer plików: Uszkodzone transfery plików (przerwane USB, niestabilna karta SD, przerwy sieciowe podczas przesyłania do chmury) mogą obciąć segment APP1 JPEG, w którym znajduje się EXIF, powodując powstanie pliku obrazu, który się otwiera, ale nie ma żadnych metadanych. Różnica w rozmiarze między oryginalnym plikiem a przeniesionym plikiem jest charakterystycznym sygnałem ostrzegawczym.
Środowiska bez dostępu do GPS: Gdy dron nie może uzyskać fixu GPS (wewnątrz tuneli, pod gęstym zadrzewieniem, między wysokimi budynkami, podczas rozgrzewania przed lotem), GPS IFD EXIF może być całkowicie nieobecny lub wypełniony zerowymi współrzędnymi lub ostatnią znaną pozycją (zachowanie specyficzne dla DJI, które może pozostać niewykryte, jeśli obrazy nie są ręcznie przeglądane).
Błędy karty SD i systemu plików: Uszkodzenie karty SD, nieprawidłowe wysunięcie i utrata zasilania podczas operacji zapisu mogą skutkować częściowymi danymi EXIF. Częstym objawem jest prawidłowy DateTimeOriginal, ale nieobecny GPS IFD — metadane aparatu zostały zapisane przed uzyskaniem fixu GPS.
Metody wykrywania obejmują: porównanie rozmiaru pliku (oryginalne JPG z drona mają zazwyczaj 3-15 MB; wersje pozbawione EXIF są mniejsze o 0,5-2 MB), szybkie sprawdzenie narzędziem EXIF (exiftool -GPSLatitude -GPSLongitude -DateTimeOriginal *.JPG pokazujące puste pola) oraz automatyczne skrypty kontroli jakości, które oznaczają obrazy bez danych GPS podczas pobierania do potoku.
Naprawa zależy od dostępnych danych kopii zapasowej:
exiftool -p gpx.fmt lub dedykowanych skryptów.Wybór między osadzonym EXIF a zewnętrznymi metadanymi bocznikowymi ma znaczące implikacje dla zarządzania danymi inspekcyjnymi.
Osadzony EXIF jest przechowywany w samym pliku obrazu (segment APP1 JPEG, IFD TIFF lub bloki metadanych DNG). Kluczową zaletą jest samodzielność — obraz i jego metadane stanowią jeden plik, który nie może być rozdzielony. Kopiowanie, archiwizowanie lub transferowanie obrazu automatycznie obejmuje jego geolokalizację, znacznik czasu, ustawienia aparatu i telemetrię producenta. Wadą jest to, że EXIF ma ograniczoną rozszerzalność — standard definiuje stały zestaw identyfikatorów tagów i typów wartości, a rozszerzenia producentów (MakerNotes, przestrzenie nazw XMP) zajmują miejsce w ograniczonym segmencie JPEG (zazwyczaj 64-128 KB dla danych EXIF, choć XMP może wykraczać poza segment APP1).
XMP (Extensible Metadata Platform) to framework metadanych oparty na XML, opracowany przez Adobe i znormalizowany jako ISO 16684-1:2012. XMP może być osadzony w pliku obrazu (w pakiecie XMP w segmencie APP1, po danych EXIF) LUB przechowywany jako plik bocznikowy o tej samej nazwie i rozszerzeniu .xmp — na przykład DJI_0042.JPG i DJI_0042.xmp. Pliki bocznikowe unikają modyfikacji oryginalnego pliku obrazu (zachowując integralność podpisu cyfrowego i zapobiegając przypadkowym uszkodzeniom podczas zapisu), ale tworzą zależność sprzężenia — jeśli plik bocznikowy zostanie zgubiony, przemianowany lub oddzielony od obrazu, metadane przepadają.
GPX (GPS Exchange Format) to bocznikowy format oparty na XML dla danych śladu GPS. Pliki GPX przechowują punkty nawigacyjne, ślady i trasy ze znacznikami czasu. Dla inspekcji, GPX jest preferowanym formatem dla dzienników śladu GPS, ponieważ jest powszechnie obsługiwany przez oprogramowanie GIS, narzędzia do mapowania GPS i ExifTool. Przepływ pracy to: wykonaj misję, nagraj ślad GPX z kontrolera lub rejestratora GPS, a następnie geotaguj obrazy po locie przez dopasowanie znaczników czasu.
Własne formaty bocznikowe obejmują: pliki SRT DJI (napisy GPS + telemetrii osadzone w plikach wideo lub przechowywane obok zdjęć w folderze napisów), pliki MRK (dane korekcyjne PPK Skydio), pliki LOG (dzienniki lotu w zaszyfrowanym formacie DJI wymagające narzędzi do deszyfrowania stron trzecich, takich jak DatCon) oraz formaty specyficzne dla producenta plików kalibracyjnych kamer termowizyjnych. Organizacje z długoterminowymi archiwami inspekcyjnymi powinny zaplanować procedury zarządzania plikami bocznikowymi zapewniające synchronizację między obrazami a ich towarzyszącymi metadanymi — niebanalne wyzwanie, gdy tysiące obrazów są transferowane, kopiowane i przetwarzane w wielu systemach.
| Cecha | Osadzony EXIF | XMP Bocznikowy | Ślad GPX |
|---|---|---|---|
| Samodzielność | Tak — metadane w pliku obrazu | Nie — osobny plik sprzężony z obrazem | Nie — osobny ślad dla wszystkich obrazów |
| Limit rozmiaru | ~64 KB (EXIF w APP1) | Praktyczny limit ~1 MB | Zmienny — 10-100 KB na godzinę lotu |
| Rozszerzalność | Stały zestaw tagów; MakerNotes producenta | W pełni rozszerzalny przez przestrzenie nazw XML | Stały schemat GPS tylko |
| Trudność zapisu | Umiarkowana — wymaga modyfikacji danych binarnych | Łatwa — operacje na plikach XML | Łatwa — XML (GPX 1.1) |
| Czynnik ryzyka | Uszkodzenie pliku podczas zapisu | Rozdzielenie/utrata pliku bocznikowego | Dokładność synchronizacji znaczników czasu |
| Przydatność dla inspekcji | Podstawowy nośnik metadanych | Rozszerzona kopia zapasowa telemetrii | Archiwum śladu GPS |
Zalecaną praktyką dla operacji inspekcji dronem jest podejście hybrydowe: (1) zachowaj oryginalne dane EXIF w każdym pliku obrazu jako podstawowy nośnik metadanych, (2) utrzymuj kopię zapasową śladu GPX z kontrolera lotu do odzyskiwania GPS, (3) archiwizuj pliki SRT DJI lub równoważną telemetrię producenta wraz z obrazami oraz (4) do długoterminowego archiwizowania, wygeneruj skonsolidowany plik metadanych (CSV, GeoJSON lub baza danych) wyodrębniony ze wszystkich źródeł, aby zapewnić przetrwanie metadanych niezależnie od zgodności formatu plików.
TarmacView wykorzystuje metadane EXIF ze zdjęć inspekcyjnych dronem do automatycznej geolokalizacji uszkodzeń nawierzchni, mapowania stanu dróg startowych i generowania ortomozai k klasy geodezyjnej. Wyciągnij maksymalną wartość ze swoich zdjęć inspekcyjnych dzięki automatycznemu przetwarzaniu metadanych.
Metadane GPS EXIF osadzają w plikach obrazów i wideo współrzędne geograficzne (szerokość, długość geograficzna, wysokość), znacznik czasu UTC oraz dane kierunko...
Obszerne hasło słownikowe dotyczące współrzędnych GPS, obejmujące szerokość, długość i wysokość geograficzną w geodezji i lotnictwie. Zawiera informacje o układ...
Znacznik czasu to precyzyjny cyfrowy zapis dokładnej daty i godziny wystąpienia zdarzenia, standaryzowany w lotnictwie i technologii dla zapewnienia integralnoś...