Hi,

I did not know until today that SpatiaLite has also ST_ConcaveHull function 
https://www.gaia-gis.it/gaia-sins/spatialite-sql-latest.html but I am glad that 
I know it now.

I digitized some points (concave.jml) for a test
[cid:[email protected]]

and then I used ogr2ogr and allowed ST_ConcaveHull to create holes

ogr2ogr -f jml -dialect SQLite -sql "select 
ST_ConcaveHull(ST_Collect(geometry),3,1) from concave" out.jml concave.jml

and the result was

[cid:[email protected]]

For fine tuning you may want to add ST_Buffer into the SQL.

-Jukka Rahkonen-


Lähettäjä: Paul Meems <[email protected]>
Lähetetty: perjantai 3. maaliskuuta 2023 16.47
Vastaanottaja: [email protected]
Kopio: Rahkonen Jukka <[email protected]>
Aihe: Re: [gdal-dev] Convex hull with holes

Thanks Jukka for your reply.

I understand it is hard.
In my case, I have a lot of data points making your edge case not a problem for 
me.
The data points are collected driving over a field with 1 or more sensors.
The result can be something like this:
[cid:[email protected]]
The red dots are the data points and I manually created the black border and 
added a small buffer.
The red dots are transformed into polygons using inverse distance and 
afterward, I need to 'blank' the data using the black border.
I can automate all steps except for creating this field border.

I'm also struggling to get a proper name for my needs, making it harder to 
Google for a solution.
'Convex hull' is not correct. What would be a more appropriate name?

Regards,

Paul

Op vr 3 mrt. 2023 om 14:13 schreef Rahkonen Jukka 
<[email protected]<mailto:[email protected]>>:
Hi,

So you have an uncategorized bunch of points and you wish to have an algorithm 
that recognizes outer and inner rings automatically? I fear that is not as easy 
as it may appear. Have a look at the annexed image with two polygons having the 
same vertices. How could an algorithm know which interpretation is correct? In 
this simple case you could make a convex hull, delete the vertices which were 
consumed for the outer ring, and create a new ring from the remaining points, 
but generally it will not work if there are two holes, for example.

If the points come from a GPX device, make the application to record indexes 
for both the points and the rings “ring1-point1, 
ring1-point2---ring2-point1,ring2-point2” and construct the polygon ring by 
ring.

-Jukka Rahkonen-

Lähettäjä: gdal-dev 
<[email protected]<mailto:[email protected]>> 
Puolesta Paul Meems
Lähetetty: perjantai 3. maaliskuuta 2023 14.52
Vastaanottaja: [email protected]<mailto:[email protected]>
Aihe: [gdal-dev] Convex hull with holes

How can I algorithmically create a parcel border that accounts for islands or 
holes within the parcel based on a list of coordinates?

While GDAL+GEOS has a Convex hull method, it only identifies the outer border.

Has GDAL+GEOS a method that I can use to detect inner holes as well, such as in 
a donut-shaped field?

The output can be json or shapefile, that doesn't matter.

Thanks,

Paul Meems
_______________________________________________
gdal-dev mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to