[gdal-dev] GDAL Maintainers Meeting Minutes

2024-03-29 Thread Howard Butler via gdal-dev
Howard Butler, Even Rouault, Dan Baston, Javier Jiminez Shaw, and Sean Gillies 
held the monthly GDAL Maintainers Meeting on 03/28/2024. The following items 
were discussed and reported upon:

Sponsorship Updates
---

* Dynamic Graphic, Inc. sponsored GDAL at Supporter level

Discussion Items


 GDAL 3.8.5 RC1 is expected next week. It is intended to be the final 3.8 
maintenance release with 3.9.0 being expected in May 2024

Maintenance activities update
--

Dan

* Addressed a few Python bindings crash bugs
* Python API documentation cleanups and reorganization to make discovery of 
methods groups by typical usage stories

Alessandro

* GDAL PR reviews
* Vector file with Polygon Z with 2 coords causing errors 
https://github.com/OSGeo/gdal/issues/9326
* GTiff: endless loop when resampling (bilinear) under some circumstances 
https://github.com/OSGeo/gdal/issues/9427
*Inconsistent Output Dimensions from gdal.warp() with Identical 
outputBounds https://github.com/OSGeo/gdal/issues/9467 
* Small improvement to code formatting to add line breaks after methods 
definition https://github.com/OSGeo/gdal/pull/9498 

Even

* Exploring implementation of a consistent argument parsing library for all of 
the GDAL and OGR command line utilities. This library-wide update will provide 
a number of quality-of-life improvements for users of the command line 
utilities:
  * Usage messages will be consistently formatted
  * Longer help messages
  * Multiple specification of the same arguments should work more consistently 
and not fail silently in some cases
  * Potential for leverage of same framework to specify input for driving CLI 
activity with config files
  * Ability to remove lots of boilerplate CLI parsing code in the utilities
* RFC99 was merged that provided preliminary implementation to address 
management and bookkeeping of coordinate precision in OGR drivers that can 
leverage it. See 
https://github.com/rouault/gdal/blob/rfc99_text/doc/source/development/rfc/rfc99_geometry_coordinate_precision.rst
 for discussion
* Facilitated the release of OpenJPEG 2.5.2. See 
https://github.com/uclouvain/openjpeg/releases/tag/v2.5.2 for more information
* libtiff PSC motion passed and the project is now managed under GDAL-like 
processes
* Added a getDataset method on Layers to ensure that library users are not 
required to memoize Layer/Dataset relationships
* Action on over 100 tickets and PRs

The next GDAL Maintainers Meeting is 04/25/2024 at 9:00 EDT. Any PSC members 
are welcome to join by reaching out to me for an invite.

Howard
___
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev


Re: [gdal-dev] JPEG2000 / GMLJP2: parameters seem to be ignored (offset location)

2024-03-29 Thread Even Rouault via gdal-dev
This might be tricky, because JPEG2000 itself has a concept of a image 
space origin which is not necessarily (0,0) with the (XOSiz, YOSiz) 
fields of the SIZ marker, although most of the time it is 0,0.   I don't 
remember how the GDAL JPEG2000 drivers behave regarding that, if they 
ignore it (that is the GDAL 0,0 pixel is the one at (XOSiz,YOSiz)), of 
if the first valid pixel in GDAL image space is actually (XOSiz, YOSiz) 
and you have padding pixels between 0 and XOSiz/YOSiz.


You can get the XOSiz, YOSiz value with the 
https://github.com/OSGeo/gdal/blob/master/swig/python/gdal-utils/osgeo_utils/samples/dump_jp2.py 
script


Depending on how drivers behave, the combination of this JPEG2000 
imaging (XOSiz, YOSiz) concept with the gml:low shift from GMLJP2 might 
actually cancel and lead to the right result...


In any case data producers are calling for troubles by using any of 
those mechanisms...


Le 29/03/2024 à 09:45, Philippe Ghesquiere via gdal-dev a écrit :

Hi all,

I have some questions about GMLJP2 parameters concerning location.

*1) Description
*Some JP2K images have a pixel origin different than (0 ; 0) (DIMAP 
products for example).


In such cases, the GML header looks like like:

*7 7  <== Different than "0 0"*
    1000 1000


This origin coordinate should be taken into account for pixel location 
(See OGC 05-047r3  p93):


    
        
             Index position of the first grid post, which
             shall lie somwhere in the GridEnvelope. If absent, the 
startPoint is equal

             to the value of gridEnvelope::low from the grid definition.
        
    


It seems that this offset is not taken into account by GDAL location 
function.


*2) How to reproduce*
2.1) Data creation
Reference (no offset) image:
gdal_create -of JP2OpenJPEG -co GMLJP2=YES -outsize 100 100 -bands 3 
-burn 0 -burn 255 -burn 0 -a_srs epsg:32632 -a_ullr 50 500100 
500100 50 Offset_0.jp2


Image with offset:
sed s/"0 0"/"7 7"/g Offset_0.jp2 > Offset_7.jp2

2.2) Location test
echo "0 0" | gdaltransform Offset_0.jp2 Offset_7.jp2
0 0 0

*3) Question:*
Shouldn't we have a 7 pixels offset between the 2 images

Cheers
Philippe


The information in this e-mail is confidential. The contents may not 
be disclosed or used by anyone other than the addressee. Access to 
this e-mail by anyone else is unauthorised.
If you are not the intended recipient, please notify Airbus 
immediately and delete this e-mail.
Airbus cannot accept any responsibility for the accuracy or 
completeness of this e-mail as it has been sent over public networks. 
If you have any concerns over the content of this message or its 
Accuracy or Integrity, please contact Airbus immediately.
All outgoing e-mails from Airbus are checked using regularly updated 
virus scanning software but you should take whatever measures you deem 
to be appropriate to ensure that this message and any attachments are 
virus free.


___
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev


--
http://www.spatialys.com
My software is free, but my time generally not.
___
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev


Re: [gdal-dev] [EXTERNAL] [BULK] Re: Experience with slowness of free() on Windows with lots of allocations?

2024-03-29 Thread Javier Jimenez Shaw via gdal-dev
for tcmalloc do you need master? this recent release seems to have CMake
https://github.com/gperftools/gperftools/releases/tag/gperftools-2.15

Of course, I do not mean to force the usage of it. But could be a
suggestion in case we do not find anything better and a user has problems.
Or a way to inspire later research.

For us it is definitely helping.

Cheers,
Javier

On Thu, 21 Mar 2024 at 14:59, Even Rouault via gdal-dev <
gdal-dev@lists.osgeo.org> wrote:

> I've played with VirtualAlloc(NULL, SINGLE_ALLOC_SIZE, MEM_COMMIT |
> MEM_RESERVE, PAGE_READWRITE), and it does avoid the performance issue.
> However I see that VitualAlloc() allocates by chunks of 64 kB, so depending
> on the size of a block, it might cause significant waste of RAM, so that
> can't be used as a direct replacement of malloc().
>
> My inclination would be to perhaps have an optional config option like
> GDAL_BLOCK_CACHE_USE_PRIVATE_HEAP that could be set, and when doing so it
> would use HeapCreate(0, 0, GDAL_CACHEMAX) to create a heap only used by the
> block cache. Not ideal, since that would reserve the whole GDAL_CACHEMAX
> (but for a large enough processing, you'll end up consuming it), but it has
> the advantage of not being extremely intrusive either... and could be
> easily ditched/replaced by something better in the future.
>
> Regarding tcmalloc, I've had to use it on Linux too, but only on scenarios
> involving multithreading where it helps reducing RAM fragmentation: cf
> https://gdal.org/user/multithreading.html#ram-fragmentation-and-multi-threading
> . I've just tried quickly to use it on Windows to test it on the scenario,
> but didn't really manage to make it work. Even building it was challenging.
> Actually I tried https://github.com/gperftools/gperftools and I had to
> build from master since the latest tagged version doesn't build with CMake
> on Windows. But then nothing happens when linking tcmalloc_minimal.lib
> against my toy app. I probably missed something.
>
> Anyway I don't really think we can force tcmalloc to be used in GDAL, as a
> library. Unless there would be a way to have its allocator to be optionnaly
> used at places that we control (ie explicitly call tc_malloc / tc_free),
> and not replace the default malloc / free etc, which might be undesirable
> when GDAL is just a component of a larger application.
>
> Disabling entirely the block cache (or setting it to a minimum value) is
> only a workable option for uncompressed formats, or if you use per-band
> blocks (INTERLEAVE=BAND in GTiff language) and not one block for all bands
> (INTERLEAVE=PIXEL), otherwise you'll pay multiple time the decompression.
> Le 21/03/2024 à 14:38, Meyer, Jesse R. (GSFC-618.0)[SCIENCE SYSTEMS AND
> APPLICATIONS INC] via gdal-dev a écrit :
>
> +1.  We use a variety of hand-rolled VirtualAlloc based (for basic tasks,
> a simple pointer bump, and for more elaborate needs, a ‘buddy’) allocators,
> some of which try to be smart about memory usage via de-committing
> regions.  In our work, we tend to disable the GDAL cache entirely and rely
> on the file system’s file cache instead, which is a simplification we can
> make but is surely untenable in general here.
>
>
>
> *From: *gdal-dev 
>  on behalf of Abel Pau via gdal-dev
>  
> *Reply-To: *Abel Pau  
> *Date: *Thursday, March 21, 2024 at 4:51 AM
> *To: *"gdal-dev@lists.osgeo.org" 
>  
> *Subject: *[EXTERNAL] [BULK] Re: [gdal-dev] Experience with slowness of
> free() on Windows with lots of allocations?
>
>
>
> *CAUTION:* This email originated from outside of NASA.  Please take care
> when clicking links or opening attachments.  Use the "Report Message"
> button to report suspicious messages to the NASA SOC.
>
>
>
> Hi Even,
>
>
>
> you’re right. We also know that. When programming the driver I took it in
> consideration. Our solution is not rely on windows to make a good job with
> memory and we try to reuse as memory as possible instead of use calloc/free
> freely.
>
>
>
> For instance, in the driver, for each feature I have to get or write the
> coordinates. I could do it every time I have to, so lots of times: create
> memory for reading, and then put them on the feature, and then free... so
> many times. What I do? When opening the layer I create some memory blocs of
> 250 Mb (due to the format itself) and I use that created memory to manage
> whatever I need. And when closing, I free it.
>
>
>
> While doing that I observed that sometimes I have to use GDAL code that
> doesn’t take it in consideration (CPLRecode() for instance). Perhaps it
> could be improves as well.
>
>
>
> Thanks for noticing that.
>
>
>
> *De:* gdal-dev 
>  *En nombre de *Javier Jimenez Shaw via
> gdal-dev
> *Enviado el:* dijous, 21 de març de 2024 8:27
> *Para:* Even Rouault 
> 
> *CC:* gdal dev  
> *Asunto:* Re: [gdal-dev] Experience with slowness of free() on Windows
> with lots of allocations?
>
>
>
> In my company we confirmed that "Windows heap allocation mechanism sucks."
>
> Closing the 

[gdal-dev] JPEG2000 / GMLJP2: parameters seem to be ignored (offset location)

2024-03-29 Thread Philippe Ghesquiere via gdal-dev
Hi all,

I have some questions about GMLJP2 parameters concerning location.


*1) Description*Some JP2K images have a pixel origin different than (0 ; 0)
(DIMAP products for example).

In such cases, the GML header looks like like:

*7 7  <== Different than "0 0"*
1000 1000


This origin coordinate should be taken into account for pixel location (See
OGC 05-047r3  p93):



 Index position of the first grid post, which
 shall lie somwhere in the GridEnvelope. If absent, the
startPoint is equal
 to the value of gridEnvelope::low from the grid definition.




It seems that this offset is not taken into account by GDAL location
function.

*2) How to reproduce*
2.1) Data creation
Reference (no offset) image:
gdal_create -of JP2OpenJPEG -co GMLJP2=YES -outsize 100 100 -bands 3 -burn
0 -burn 255 -burn 0 -a_srs epsg:32632 -a_ullr 50 500100 500100 50
Offset_0.jp2

Image with offset:
sed s/"0 0"/"7 7"/g Offset_0.jp2 > Offset_7.jp2

2.2) Location test
echo "0 0" | gdaltransform Offset_0.jp2 Offset_7.jp2
0 0 0

*3) Question:*
Shouldn't we have a 7 pixels offset between the 2 images

Cheers
Philippe
The information in this e-mail is confidential. The contents may not be 
disclosed or used by anyone other than the addressee. Access to this e-mail by 
anyone else is unauthorised.
If you are not the intended recipient, please notify Airbus immediately and 
delete this e-mail.
Airbus cannot accept any responsibility for the accuracy or completeness of 
this e-mail as it has been sent over public networks. If you have any concerns 
over the content of this message or its Accuracy or Integrity, please contact 
Airbus immediately.
All outgoing e-mails from Airbus are checked using regularly updated virus 
scanning software but you should take whatever measures you deem to be 
appropriate to ensure that this message and any attachments are virus free.
___
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev