Geographic Information Systems Asked on May 24, 2021
I want to compress a bunch of sequentially recorded positions with timestamps into a linestring with XYZ an M dimension (LineStringXYZM). Each set of points is represented by a constant part (ship data from AIS like MMSI, length, width, type) and a dynamic part (x y z timestamp). I want to compress the repeated static info by creating a trajectory like LineString and the additional static attributes. The timestamps have a granularity of milliseconds (YYYY-MM-DD.HH:MM:SS.FFF).
I want to know of which datatype M is (int32, int64 or float32, float32) in the Esri-Shapefile and the PostGIS context to feed in that info into the geo-object.
Example operations posgresql:
INTEGER
SELECT mmsi, lon, lat,
extract(epoch FROM (dt||' '||tm)::timestamp(3))*1000 AS ts
FROM ais_pos
WHERE year = 2018 AND month = 1
ORDER BY mmsi, ts LIMIT 4;
mmsi | lon | lat | ts
-----------+----------+-----------+---------------
100000000 | 8.173233 | 53.573867 | 1514792874239
100000000 | 8.173200 | 53.574033 | 1514792882455
100000000 | 8.173183 | 53.574067 | 1514792884476
100000000 | 8.173133 | 53.574283 | 1514792895864
FLOAT
SELECT mmsi, lon, lat,
extract(epoch FROM (dt||' '||tm)::timestamp(3)) AS ts
FROM ais_pos
WHERE year = 2018 AND month = 1
ORDER BY mmsi, ts LIMIT 4;
mmsi | lon | lat | ts
-----------+----------+-----------+----------------
100000000 | 8.173233 | 53.573867 | 1514792874.239
100000000 | 8.173200 | 53.574033 | 1514792882.455
100000000 | 8.173183 | 53.574067 | 1514792884.476
100000000 | 8.173133 | 53.574283 | 1514792895.864
Which range has the measured value M (ordinal type/ float type) to prevent overflow errors (..see example).
#!/usr/bin/perl
# -- test overflow
# sample from the sql query
my $x = 1514792874239;
# max unsigned 32 bit int
my $y = 2**32-1;
# make string
my $s = $x>$y ? 'overflow' : 'in.range';
# show result
print "$x $y $s n"
! 1514792874239 4294967295 overflow
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP