<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">Joaquim<div><br></div><div>Thanks for the notice. I was getting very worried that the many small allocations (a few per value) and finalizers were somehow incredibly expensive. Apparently they do have a cost, but just a reasonable one.</div><div><br></div><div>-erik<br id="lineBreakAtBeginningOfMessage"><div><br><blockquote type="cite"><div>On Jun 24, 2025, at 16:28, Joaquim Manuel Freire Luís <jluis@ualg.pt> wrote:</div><br class="Apple-interchange-newline"><div><meta charset="UTF-8"><div class="WordSection1" style="page: WordSection1; caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">To finish this. The problem was in the GMT.jl wrapper.<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">Short history.<o:p></o:p></span></div><ol start="1" type="1" style="margin-bottom: 0in; margin-top: 0in;"><li class="MsoListParagraph" style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">Julia 1.9 started to crash with some GMT.jl tests<o:p></o:p></span></li><li class="MsoListParagraph" style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">Opened an issue (<a href="https://github.com/JuliaLang/julia/issues/47003" style="color: blue; text-decoration: underline;">https://github.com/JuliaLang/julia/issues/47003</a>) but got little-to-none help<o:p></o:p></span></li><li class="MsoListParagraph" style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">Found a patch for the situation (that seemed innocuous)<o:p></o:p></span></li></ol><div style="margin: 0in 0in 0in 0.5in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><a href="https://github.com/GenericMappingTools/GMT.jl/blob/master/src/gdal.jl#L1953" style="color: blue; text-decoration: underline;">https://github.com/GenericMappingTools/GMT.jl/blob/master/src/gdal.jl#L1953</a><o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><o:p> </o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">but that patch ended up causing this extreme slowdown. Since Julia doesn’t crash anymore, I removed that patch and now<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><o:p> </o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span lang="FI" style="font-size: 11pt;">julia> @time gdalread("/vsigzip//vsicurl/<a href="https://bulk.meteostat.net/v2/hourly/2022/08554.csv.gz" style="color: blue; text-decoration: underline;">https://bulk.meteostat.net/v2/hourly/2022/08554.csv.gz</a>");<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"> 1.007115 seconds (130.95 k allocations: 3.804 MiB)<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><o:p> </o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">Thanks for the discussion that helped a lot figuring out the problem.<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><o:p> </o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">Joaquim<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><o:p> </o:p></span></div><div><div style="border-width: 1pt medium medium; border-style: solid none none; border-color: rgb(225, 225, 225) currentcolor currentcolor; border-image: none; padding: 3pt 0in 0in;"><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><b><span style="font-size: 11pt; font-family: Calibri, sans-serif;">From:</span></b><span style="font-size: 11pt; font-family: Calibri, sans-serif;"><span class="Apple-converted-space"> </span>gdal-dev <gdal-dev-bounces@lists.osgeo.org><span class="Apple-converted-space"> </span><b>On Behalf Of<span class="Apple-converted-space"> </span></b>Joaquim Manuel Freire Luís via gdal-dev<br><b>Sent:</b><span class="Apple-converted-space"> </span>Tuesday, June 24, 2025 6:19 PM<br><b>To:</b><span class="Apple-converted-space"> </span>Erik Schnetter <schnetter@gmail.com>; gdal-dev@lists.osgeo.org<br><b>Subject:</b><span class="Apple-converted-space"> </span>Re: [gdal-dev] Read a /vsigzip/ csv.gz all at once<o:p></o:p></span></div></div></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><o:p> </o:p></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">Even<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><o:p> </o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">In case you are spending any time on this, please do not. It this time I’m persuaded that this is a Juia wrapper(s) issue but have no time to investigating it much more right now.<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><o:p> </o:p></span></div><div><div style="border-width: 1pt medium medium; border-style: solid none none; border-color: rgb(225, 225, 225) currentcolor currentcolor; border-image: none; padding: 3pt 0in 0in;"><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><b><span style="font-size: 11pt; font-family: Calibri, sans-serif;">From:</span></b><span style="font-size: 11pt; font-family: Calibri, sans-serif;"><span class="Apple-converted-space"> </span>Joaquim Manuel Freire Luís <<a href="mailto:jluis@ualg.pt" style="color: blue; text-decoration: underline;">jluis@ualg.pt</a>><br><b>Sent:</b><span class="Apple-converted-space"> </span>Tuesday, June 24, 2025 5:52 PM<br><b>To:</b><span class="Apple-converted-space"> </span>Joaquim Manuel Freire Luís <<a href="mailto:jluis@ualg.pt" style="color: blue; text-decoration: underline;">jluis@ualg.pt</a>>; Erik Schnetter <<a href="mailto:schnetter@gmail.com" style="color: blue; text-decoration: underline;">schnetter@gmail.com</a>>;<span class="Apple-converted-space"> </span><a href="mailto:gdal-dev@lists.osgeo.org" style="color: blue; text-decoration: underline;">gdal-dev@lists.osgeo.org</a><br><b>Subject:</b><span class="Apple-converted-space"> </span>RE: [gdal-dev] Read a /vsigzip/ csv.gz all at once<o:p></o:p></span></div></div></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><o:p> </o:p></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">Erik, BINGO.<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><o:p> </o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">Since, in this case, I know that the field type is string, if I replace the calls to getfield(…) to<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><o:p> </o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">OGR_F_GetFieldAsString(f.ptr, k)<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><o:p> </o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">I get these timings (on a local file)<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><o:p> </o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">julia> @time gdalread("/vsigzip/C:/TMP/.meteostat/cache/hourly/2025/08554.csv.gz");<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"> 0.046272 seconds (56.04 k allocations: 1.751 MiB)<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><o:p> </o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">and, for a remote one<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><o:p> </o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span lang="FI" style="font-size: 11pt;">julia> @time gdalread("/vsigzip//vsicurl/https://bulk.meteostat.net/v2/hourly/2022/08554.csv.gz");<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"> 1.191215 seconds (113.43 k allocations: 3.537 MiB)<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><o:p> </o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><o:p> </o:p></span></div><div><div style="border-width: 1pt medium medium; border-style: solid none none; border-color: rgb(225, 225, 225) currentcolor currentcolor; border-image: none; padding: 3pt 0in 0in;"><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><b><span style="font-size: 11pt; font-family: Calibri, sans-serif;">From:</span></b><span style="font-size: 11pt; font-family: Calibri, sans-serif;"><span class="Apple-converted-space"> </span>gdal-dev <<a href="mailto:gdal-dev-bounces@lists.osgeo.org" style="color: blue; text-decoration: underline;">gdal-dev-bounces@lists.osgeo.org</a>><span class="Apple-converted-space"> </span><b>On Behalf Of<span class="Apple-converted-space"> </span></b>Joaquim Manuel Freire Luís via gdal-dev<br><b>Sent:</b><span class="Apple-converted-space"> </span>Tuesday, June 24, 2025 5:33 PM<br><b>To:</b><span class="Apple-converted-space"> </span>Erik Schnetter <<a href="mailto:schnetter@gmail.com" style="color: blue; text-decoration: underline;">schnetter@gmail.com</a>>;<span class="Apple-converted-space"> </span><a href="mailto:gdal-dev@lists.osgeo.org" style="color: blue; text-decoration: underline;">gdal-dev@lists.osgeo.org</a><br><b>Subject:</b><span class="Apple-converted-space"> </span>Re: [gdal-dev] Read a /vsigzip/ csv.gz all at once<o:p></o:p></span></div></div></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><o:p> </o:p></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">To complement what Eric said, here’s the ‘getfield’ function (This code was taken from ArchGDAL so we are talking of the same thing)<o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><o:p> </o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><a href="https://github.com/GenericMappingTools/GMT.jl/blob/master/src/gdal.jl#L2161" style="color: blue; text-decoration: underline;">https://github.com/GenericMappingTools/GMT.jl/blob/master/src/gdal.jl#L2161</a><o:p></o:p></span></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><o:p> </o:p></span></div><div><div style="border-width: 1pt medium medium; border-style: solid none none; border-color: rgb(225, 225, 225) currentcolor currentcolor; border-image: none; padding: 3pt 0in 0in;"><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><b><span style="font-size: 11pt; font-family: Calibri, sans-serif;">From:</span></b><span style="font-size: 11pt; font-family: Calibri, sans-serif;"><span class="Apple-converted-space"> </span>gdal-dev <<a href="mailto:gdal-dev-bounces@lists.osgeo.org" style="color: blue; text-decoration: underline;">gdal-dev-bounces@lists.osgeo.org</a>><span class="Apple-converted-space"> </span><b>On Behalf Of<span class="Apple-converted-space"> </span></b>Erik Schnetter via gdal-dev<br><b>Sent:</b><span class="Apple-converted-space"> </span>Tuesday, June 24, 2025 5:21 PM<br><b>To:</b><span class="Apple-converted-space"> </span><a href="mailto:gdal-dev@lists.osgeo.org" style="color: blue; text-decoration: underline;">gdal-dev@lists.osgeo.org</a><br><b>Subject:</b><span class="Apple-converted-space"> </span>Re: [gdal-dev] Read a /vsigzip/ csv.gz all at once<o:p></o:p></span></div></div></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><o:p> </o:p></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;">The Julia wrapper (ArchGDAL.jl) for `getfield` calls `OGR_FD_GetFieldDefn` and several related function (to get the type of the field etc.). Are these possibly expensive operations in GDAL?<o:p></o:p></div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><o:p> </o:p></div></div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;">Any C function in GDAL can easily be called from Julia. Which C function would get all fields at once? I assume that e.g. `OGR_F_GetFieldAsDoubleList` would not work; this would be for values that are themselves lists?<o:p></o:p></div></div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><o:p> </o:p></div></div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;">The Julia code for `getfield` spends quite a bit of work to find out the type of the field. This includes a bit of reference counting, allocating small structures on the heap, registering finalizers for them etc. This could be avoided by adding a Julia wrapper that calls `getfield` repeatedly (even from Julia, calling C has no overhead by itself) for a range of integers. This would avoid the additional overhead having to do with handling types, and the Julia/GDAL reference counting. Even, is that what you had in mind?<o:p></o:p></div></div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><o:p> </o:p></div></div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;">-erik<o:p></o:p></div></div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><o:p> </o:p></div></div><div><div><div><div><div><blockquote style="margin-top: 5pt; margin-bottom: 5pt;"><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;">On Jun 24, 2025, at 11:01, Even Rouault via gdal-dev <<a href="mailto:gdal-dev@lists.osgeo.org" style="color: blue; text-decoration: underline;">gdal-dev@lists.osgeo.org</a>> wrote:<o:p></o:p></div></div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><o:p> </o:p></div><div><p style="caret-color: rgb(0, 0, 0); font-variant-caps: normal; text-align: start; -webkit-text-stroke-width: 0px; word-spacing: 0px;"><span style="font-size: 9pt; font-family: Helvetica, sans-serif;">Hi,<o:p></o:p></span></p><p style="caret-color: rgb(0, 0, 0); font-variant-caps: normal; text-align: start; -webkit-text-stroke-width: 0px; word-spacing: 0px;"><span style="font-size: 9pt; font-family: Helvetica, sans-serif;">I don't know anything about Julia but I'd suspect that there must be something particularly slow in the way it interacts with C. For comparison, "time python3 swig/python/gdal-utils/osgeo_utils/samples/ogrinfo.py /vsigzip//vsicurl/<a href="https://bulk.meteostat.net/v2/hourly/2022/08554.csv.gz" style="color: blue; text-decoration: underline;"><span style="color: rgb(70, 120, 134);">https://bulk.meteostat.net/v2/hourly/2022/08554.csv.gz</span></a> -al > /dev/null" that does essentially your loop, and also prints on stdout, runs in 1.5 seconds (compared to native ogrinfo that runs in 0.7 s). Perhaps you could write a Julia wrapper to get all fields of feature at once and return whatever dictionary or equivalent data structure is idiomatic (and efficient )in Julia ? Also are you sure your Julia wrapper is built with optimization enabled?<o:p></o:p></span></p><p style="caret-color: rgb(0, 0, 0); font-variant-caps: normal; text-align: start; -webkit-text-stroke-width: 0px; word-spacing: 0px;"><span style="font-size: 9pt; font-family: Helvetica, sans-serif;">Even<o:p></o:p></span></p><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 9pt; font-family: Helvetica, sans-serif;">Le 24/06/2025 à 16:33, Joaquim Manuel Freire Luís via gdal-dev a écrit :<o:p></o:p></span></div></div><blockquote style="margin-top: 5pt; margin-bottom: 5pt; font-variant-caps: normal; text-align: start; -webkit-text-stroke-width: 0px; word-spacing: 0px;"><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span lang="PT" style="font-size: 11pt;">Hi,</span><span style="font-size: 11pt;"><o:p></o:p></span></div></div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span lang="PT" style="font-size: 11pt;"> </span><span style="font-size: 11pt;"><o:p></o:p></span></div></div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">Im trying to read files like<span class="apple-converted-space"> </span><o:p></o:p></span></div></div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"><a href="https://bulk.meteostat.net/v2/hourly/2022/08554.csv.gz" style="color: blue; text-decoration: underline;"><span style="color: rgb(70, 120, 134);">https://bulk.meteostat.net/v2/hourly/2022/08554.csv.gz</span></a><o:p></o:p></span></div></div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"> <o:p></o:p></span></div></div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">in my Julia wrapper. The point is that, although I’m kind off succeeding, the hole operation is very slow.<o:p></o:p></span></div></div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">What I’m doing (code not committed yet so can’t post a link) is to read like this<o:p></o:p></span></div></div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"> <o:p></o:p></span></div></div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">layer = getlayer(dataset, 0)<o:p></o:p></span></div></div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">for f in layer<o:p></o:p></span></div></div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"> for k = 1: Gdal.nfield(f)<o:p></o:p></span></div></div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"> Gdal.getfield(f, k-1)<o:p></o:p></span></div></div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">…<o:p></o:p></span></div></div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"> <o:p></o:p></span></div></div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">This works but it’s extremely slow because each “getfield” takes about 1e-4 seconds and the file has ~8 k rows, each with 13 fields. That amounts to > 10 sec.<o:p></o:p></span></div></div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"> <o:p></o:p></span></div></div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">I’ve searched but couldn’t find a way to read the entire file at once (which takes 1e-2 seconds if I read it, locally, with a gzip wrapper) and return it as a single string array that I could parse later.<o:p></o:p></span></div></div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"> <o:p></o:p></span></div></div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">Is that possible?<span class="apple-converted-space"> </span><o:p></o:p></span></div></div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"> <o:p></o:p></span></div></div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">Thanks<o:p></o:p></span></div></div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;"> <o:p></o:p></span></div></div><div><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 11pt;">Joaquim<o:p></o:p></span></div></div><p class="MsoNormal" style="margin: 0in 0in 12pt; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 9pt; font-family: Helvetica, sans-serif;"><o:p> </o:p></span></p><pre style="margin: 0in; font-size: 10pt; font-family: "Courier New";">_______________________________________________<o:p></o:p></pre><pre style="margin: 0in; font-size: 10pt; font-family: "Courier New";">gdal-dev mailing list<o:p></o:p></pre><pre style="margin: 0in; font-size: 10pt; font-family: "Courier New";"><a href="mailto:gdal-dev@lists.osgeo.org" style="color: blue; text-decoration: underline;"><span style="color: rgb(70, 120, 134);">gdal-dev@lists.osgeo.org</span></a><o:p></o:p></pre><pre style="margin: 0in; font-size: 10pt; font-family: "Courier New";"><a href="https://lists.osgeo.org/mailman/listinfo/gdal-dev" style="color: blue; text-decoration: underline;"><span style="color: rgb(70, 120, 134);">https://lists.osgeo.org/mailman/listinfo/gdal-dev</span></a><o:p></o:p></pre></blockquote><pre style="margin: 0in; font-size: 10pt; font-family: "Courier New"; caret-color: rgb(0, 0, 0); font-variant-caps: normal; text-align: start; -webkit-text-stroke-width: 0px; word-spacing: 0px;"><span style="font-size: 9pt;">-- <o:p></o:p></span></pre><pre style="margin: 0in; font-size: 10pt; font-family: "Courier New";"><span style="font-size: 9pt;"><a href="http://www.spatialys.com/" style="color: blue; text-decoration: underline;"><span style="color: rgb(70, 120, 134);">http://www.spatialys.com</span></a><o:p></o:p></span></pre><pre style="margin: 0in; font-size: 10pt; font-family: "Courier New";"><span style="font-size: 9pt;">My software is free, but my time generally not.<o:p></o:p></span></pre><div style="margin: 0in; font-size: 12pt; font-family: Aptos, sans-serif;"><span style="font-size: 9pt; font-family: Helvetica, sans-serif;">_______________________________________________<br>gdal-dev mailing list<br></span><a href="mailto:gdal-dev@lists.osgeo.org" style="color: blue; text-decoration: underline;"><span style="font-size: 9pt; font-family: Helvetica, sans-serif; color: rgb(70, 120, 134);">gdal-dev@lists.osgeo.org</span></a><span style="font-size: 9pt; font-family: Helvetica, sans-serif;"><br></span><a href="https://lists.osgeo.org/mailman/listinfo/gdal-dev" style="color: blue; text-decoration: underline;"><span style="font-size: 9pt; font-family: Helvetica, sans-serif; color: rgb(70, 120, 134);">https://lists.osgeo.org/mailman/listinfo/gdal-dev</span></a></div></div></blockquote></div></div></div></div></div></div></div></blockquote></div><br></div></body></html>