[gdal-dev] Improve clipping of shapefiles
Jan Heckman
jan.heckman at gmail.com
Mon Sep 11 03:41:39 PDT 2017
Can't really help you with the OGR part, however, I wrote utilities do
solve this (really) fast for calculating grids based on this type of
intersection.
Speed is often a matter of using specific tools utilizing the
characteristics of the problem, i.c. the fishnet regularities.
Can you share the shapesfiles so I can try?
Regards,
Jan
On Mon, Sep 11, 2017 at 11:09 AM, Paul Meems <bontepaarden at gmail.com> wrote:
> I have a large shapefile with over 2.8 million shapes (fishnet) and I have
> a border file with only 1 multipolygon.
>
> I'm trying to clip the fishnet with the border.
> Using code is takes about 5 min. using command line it takes even longer.
>
> This is my command:
> ogr2ogr fishnetClipped.shp fishnet.shp -clipsrc border.shp
>
> And this is my C# code:
> using (var dsFishnet = Ogr.Open(fishnetFilename, 0))
> {
> // Select first layer:
> using (var layerFishnet = dsFishnet.GetLayerByIndex(0))
> {
> // Open border:
> using (var dsBorder = Ogr.Open(borderFilename, 0))
> {
> // Select first layer:
> using (var layerBorder = dsBorder.GetLayerByIndex(0))
> {
> // Get ESRI driver:
> using (var driver = Ogr.GetDriverByName("ESRI Shapefile"))
> {
> // Create new shapefile:
> using (var dsClipped = driver.CreateDataSource(outputFilename,
> new string[] { }))
> {
> // Create new layer:
> var layerName = Path.GetFileNameWithoutExtension(
> outputFilename);
> using (var layerClipped = dsClipped.CreateLayer(layerName,
> layerFishnet.GetSpatialRef(), layerFishnet.GetGeomType(), new string[] { }))
> {
> if (layerClipped == null)
> {
> throw new Exception("Layer creation
> failed.");
> }
>
> // Clip the layer:
> layerFishnet.Clip(layerBorder, layerClipped,
> null, null, null);
> }
> }
> }
> }
> }
> }
> }
>
> I'm using GDAL 2.1.3
>
> Can I somehow improve the speed?
> I read something about putting one of the layers in memory or using a
> spatial filter.
> But I can't find an example of how to do this.
>
> Please advise.
>
> Thanks,
> Paul
>
> _______________________________________________
> gdal-dev mailing list
> gdal-dev at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/gdal-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20170911/9e62493b/attachment.html>
More information about the gdal-dev
mailing list