[gdal-dev] Fwd: OGR SQL dialect on FlatGeoBuf manipulating timestamps

Trygve Aspenes trygveas at met.no
Wed Oct 19 05:10:47 PDT 2022


Hi

I have some FlatGeoBuf files I have generated with the python fiona
library. This is a lat lon point and a timestamp. So I want to filter by
timestamp. What I have come up with is to use gdal sql dialect like this:

ogrinfo -sql "select * from flatgeobuf_demo where
TimeStamp>='2013-06-20T17:00:29Z'" flatgeobuf-data/*
INFO: Open of `flatgeobuf-data/points-20130620070000.fgb'
      using driver `FlatGeobuf' successful.
layer names ignored in combination with -sql.

Layer name: flatgeobuf_demo
Geometry: Point
Feature Count: 17
Extent: (-55.071900, -57.866400) - (58.263300, 51.737400)
Layer SRS WKT:
GEOGCRS["WGS 84",
    ENSEMBLE["World Geodetic System 1984 ensemble",
        MEMBER["World Geodetic System 1984 (Transit)"],
        MEMBER["World Geodetic System 1984 (G730)"],
        MEMBER["World Geodetic System 1984 (G873)"],
        MEMBER["World Geodetic System 1984 (G1150)"],
        MEMBER["World Geodetic System 1984 (G1674)"],
        MEMBER["World Geodetic System 1984 (G1762)"],
        ELLIPSOID["WGS 84",6378137,298.257223563,
            LENGTHUNIT["metre",1]],
        ENSEMBLEACCURACY[2.0]],
    PRIMEM["Greenwich",0,
        ANGLEUNIT["degree",0.0174532925199433]],
    CS[ellipsoidal,2],
        AXIS["geodetic latitude (Lat)",north,
            ORDER[1],
            ANGLEUNIT["degree",0.0174532925199433]],
        AXIS["geodetic longitude (Lon)",east,
            ORDER[2],
            ANGLEUNIT["degree",0.0174532925199433]],
    USAGE[
        SCOPE["Horizontal component of 3D system."],
        AREA["World."],
        BBOX[-90,-180,90,180]],
    ID["EPSG",4326]]
Data axis to CRS axis mapping: 2,1
Geometry Column = _ogr_geometry_
TimeStamp: String (0.0)
OGRFeature(flatgeobuf_demo):19
  TimeStamp (String) = 2013-06-20T17:00:29Z
  POINT (11.3157 -5.3703)
<truncated>

However what I want is to make a query with all points between one
timestamp and another. And here is my problem: the time parameters come
from a request query and have the format YYYY-mm-ddTHH:MM:SSZ. So I need a
way to say:

ogrinfo -sql "select * from flatgeobuf_demo where TimeStamp between
'2013-06-20T17:00:29Z' and '2013-06-20T17:00:29Z'+TimeInterval"
flatgeobuf-data/*

I could rewrite the flatgeobuf file setting TimeStamp as a float containing
the epoch instead. But then I can not convert the incoming query with the
time from my request( with fixed format)

Any idea if, and hopefully how, I can achieve this in OGR SQL?

Trygve Aspenes
--
Trygve Aspenes - Senioringeniør/Senior Engineer
Fjernmåling Utvikling/Remotesensing development  Telefon/Phone: 22963133
Fjernmålingsavdelingen/Remotesensing department  Postboks 43, Blindern
Metklim                                          0313 OSLO
Meteorologisk Institutt
/Norwegian Meteorological Institute               NORWAY
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20221019/11298b50/attachment.htm>


More information about the gdal-dev mailing list