[gdal-dev] Passing open options along dataset name in a string ?

jratike80 jukka.rahkonen at maanmittauslaitos.fi
Tue Nov 17 01:57:29 PST 2020


Hi,

I have done some helpdesk work within the GDAL community and I know well
that the open options and config options are confusing. I also know that
they exists for a reason but simplified and uniform way to use them would be
nice.

Some comments on comments:

>> gdalinfo my.tif -oo GEOREF_SOURCES=WORLDFILE,PAM
>>

> Ideally this would be baked into the format, but, yes, I think we've got a
> bead on dataset open options.

I don't know how it could be baked into the format. The option gives user an
option to override wrong GeoTIFF georeferencing with wordfile, for example.

>> gdalinfo BAG:"data/test_vr.bag":supergrid:0:1
>>

> DRIVER:"file":something

> Right. This will require some work because of multiple colons. Though I've
> never seen BAG driver data in the wild. Is this a real live format?

As far as I know BAG is the hdf of bathymetry and widely used in that
context.

>> gdalinfo data/test_vr.bag -oo MODE=RESAMPLED_GRID -oo SUPERGRIDS_MASK=YES
>> gdalinfo HDF5:"d:\foo.he5"://HDFEOS/SWATHS/foo/bar
>>

> HDF5 driver, filename using Windows drive, and UNC path within it. This is
> marginal, right?

The part beginning with // is not UNC path but the name of the subdataset
within hdf5 file https://gdal.org/drivers/raster/hdf5.html. Not more
marginal than HDF5 itself.

>> ogrinfo OCI:warmerda/password at .dreadfest

>Wat?

Text has just been formatted into email link because of the @ sign that
belongs to the Oracle connection string "username" / "password" @ "the name
of the Oracle database as it appears in the tnsnames.ora file". Let's see if
formatting happens again when I send this from Nabble:

OCI:warmerda/password at gdal800.dreadfest.com abc.shp

-Jukka Rahkonen-




Sean Gillies-3 wrote
> Hi Even,
> 
> On Wed, Nov 4, 2020 at 9:01 AM Even Rouault <

> even.rouault@

> >
> wrote:
> 
>> > > Another particularity we have in GDAL is that the dataset name might
>> be
>> > > almost
>> > > anything. Most of the time, it is a regular file path, or some /vsi
>> path.
>> > > But
>> > > sometimes, it can be JSON content (the GeoJSON driver accepts the
>> content
>> > > to
>> > > be directly provided as the dataset name), or XML (VRT, WMS drivers).
>> > > We have also the subdataset syntax "HDF5:foo.hdf:my_variable"
>> >
>> > Could VRT XML and JSON be exempted? We already have a way to embed open
>> > options in the XML.
>>
>> If the gdn: mechanism is a new possibility offered that doesn't exclude
>> existing ones (otherwise that would be a pretty big breaking change), we
>> could
>> possibly exempt the odd cases I mentioned (or have some quoting/escaping
>> rules
>> to enable that payload to be seen as a file), which generally don't need
>> a
>> "permanent" way of refering to the dataset like gdn: would offer, since
>> this
>> is content often generated programatically or retrieved dynamically.
>>
>> Covering subdataset would be a more important use case. Something that
>> would
>> have to be decided if the way we express subdatasets would be somehow
>> standardized or if it would be a black-box string for the gdn:
>> encapsulation.
>> For a black-box approach, we would have to define some escaping/quoting
>> rules
>> to avoid any potential issue with separators of the gdn syntax. If we
>> decide
>> that the subdataset syntax is part of what is standardized by GDN that
>> would
>> be a more challenging exercice, because the subdataset syntax varies from
>> driver to driver.
>>
> 
> The variation of subdataset syntax among drivers is a bug, let's try to
> fix
> this.
> 
> It seems to me that the internet way to address subdatasets would be to
> use
> a # URL fragment. But since most of our formats and the servers that serve
> files of these formats are not aware, we may have to come up with
> something
> different. We may need to consider making subdatasets a layer opening
> option?
> 
> pending on how we design things, that might impact between:
>> - just GDALOpen() generic code if GDALOpen() decodes the gdn: string to
>> decompose it into 'classic' dataset names and open options
>> - all drivers if the gdn: string would be passed to each
>> GDALDriver::pfnOpen()
>> implementation
>> - intermediate situation if we decide to drop (at least for future
>> drivers)
>> per-driver subdataset syntax (which has deficiencies has the quoting
>> rules
>> to
>> separate the filename from the non-filename component vary from driver to
>> driver, and are most of the time not defined) to come up with something
>> more
>> standardized
>>
>> To help brainstorming, a non-exhaustive overview of a few situations
>> mixing
>> driver prefixing, subdataset syntax and open options:
>>
>> gdalinfo my.tif
>>
> 
> Yes. We have to handle bare paths to local dataset files.
> 
> 
>> gdalinfo my.tif -oo GEOREF_SOURCES=WORLDFILE,PAM
>>
> 
> Ideally this would be baked into the format, but, yes, I think we've got a
> bead on dataset open options.
> 
> 
>> gdalinfo GTIFF_DIR:0:d:\my.tif
>>
> 
> WTF is this? :)
> 
> 
>> gdalinfo EEDAI:my/asset
>> gdalinfo EEDAI: -oo ASSET=my/asset
>> gdalinfo EEDAI:my/asset:band1, band2
>> gdalinfo EEDAI: -oo ASSET=my/asset -oo BANDS=band1,band2
>>
> 
> Never seen these.
> 
> 
>> gdalinfo BAG:"data/test_vr.bag":supergrid:0:1
>>
> 
> DRIVER:"file":something
> 
> Right. This will require some work because of multiple colons. Though I've
> never seen BAG driver data in the wild. Is this a real live format?
> 
> 
>> gdalinfo data/test_vr.bag -oo MODE=RESAMPLED_GRID -oo SUPERGRIDS_MASK=YES
>> gdalinfo HDF5:"d:\foo.he5"://HDFEOS/SWATHS/foo/bar
>>
> 
> HDF5 driver, filename using Windows drive, and UNC path within it. This is
> marginal, right?
> 
> 
>> gdalinfo netCDF:"/vsicurl/http://example.com/my.nc":my_var
>>
> 
> This looks less complicated than some of the examples above.
> 
> 
>> ogrinfo "PG:dbname=testdb user=foo"
>> ogrinfo "mySQL:testdb,user=foo"
>>
> 
> These seem like they could be driver specific, but generalized key-value
> parameters.
> 
> 
>> ogrinfo OCI:warmerda/

> password at .dreadfest

> 
> 
> Wat?
> 
> 
>> GDALOpen() is not even aware that HDF5:bla means that the dataset will be
>> recognized by the HDF5 driver
>>
>>
> Wait what?
> 
> -- 
> Sean Gillies
> 
> _______________________________________________
> gdal-dev mailing list

> gdal-dev at .osgeo

> https://lists.osgeo.org/mailman/listinfo/gdal-dev





--
Sent from: http://osgeo-org.1560.x6.nabble.com/GDAL-Dev-f3742093.html


More information about the gdal-dev mailing list