<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<div name="messageBodySection">
<div dir="auto">Thanks Even, it works but I have strange result with the size value. I wouldn’t have been expected the exception from this test:
<div dir="auto"><br /></div>
<div dir="auto">$ <span style="color: var(--textColor); background-color: var(--backgroundColor);"><font face="Fira Code, monospace">OGR_GEOJSON_MAX_OBJ_SIZE=500MB ogr2ogr -f "GeoJSON" indonesia.geojson "WFS:geonode.wfp.org/geoserver/wfs?request=GetFeature&typename=geonode:glb_bnd_adm0_1&outputformat=json" -where “adm0_id=‘272’"</font></span><span style="color: var(--textColor); background-color: var(--backgroundColor);"> </span><br /></div>
<div dir="auto"><span style="color: var(--textColor); background-color: var(--backgroundColor);"><br /></span></div>
<div dir="auto">indonesia.geojson is around 35MB so the exception shouldn’t raise if OGR_GEOJSON_MAX_OBJ_SIZE=50 AFAIK:</div>
<div dir="auto"><br /></div>
<div dir="auto">$ <font face="Fira Code, monospace">python</font></div>
<div dir="auto"><font face="Fira Code, monospace">Python 3.7.6 (default, Jan 28 2020, 15:35:48)</font></div>
<div dir="auto"><font face="Fira Code, monospace">[Clang 11.0.0 (clang-1100.0.33.17)] on darwin</font></div>
<div dir="auto"><font face="Fira Code, monospace">Type "help", "copyright", "credits" or "license" for more information.</font></div>
<div dir="auto"><font face="Fira Code, monospace">>>> import os</font></div>
<div dir="auto"><font face="Fira Code, monospace">>>> os.environ["OGR_GEOJSON_MAX_OBJ_SIZE"] = “50”</font></div>
<div dir="auto"><font face="Fira Code, monospace">>>> from osgeo import ogr</font></div>
<div dir="auto"><font face="Fira Code, monospace">>>> ogr.UseExceptions()</font></div>
<div dir="auto"><font face="Fira Code, monospace">>>> ds = ogr.Open('/Users/geobart/Downloads/indonesia.geojson’)</font></div>
<div dir="auto"><font face="Fira Code, monospace">>>> lyr = ds.GetLayer(0)</font></div>
<div dir="auto"><font face="Fira Code, monospace">>>> lyr.GetNextFeature()</font></div>
<div dir="auto"><font face="Fira Code, monospace">Traceback (most recent call last):</font></div>
<div dir="auto"><font face="Fira Code, monospace">  File "<stdin>", line 1, in <module></font></div>
<div dir="auto"><font face="Fira Code, monospace">  File "/Users/geobart/.pyenv/versions/pygeoapi/lib/python3.7/site-packages/osgeo/ogr.py", line 1632, in GetNextFeature</font></div>
<div dir="auto"><font face="Fira Code, monospace">    return _ogr.Layer_GetNextFeature(self, *args)</font></div>
<div dir="auto"><font face="Fira Code, monospace">RuntimeError: GeoJSON object too complex, please see the OGR_GEOJSON_MAX_OBJ_SIZE environment option</font></div>
<div dir="auto"><font face="Fira Code, monospace"><br /></font></div>
<div dir="auto"><font face=".AppleSystemUIFont">Is it a bug?</font></div>
</div>
</div>
<div name="messageReplySection">Il 28 feb 2020, 17:29 +0100, Even Rouault <even.rouault@spatialys.com>, ha scritto:<br />
<blockquote type="cite" class="spark_quote" style="margin: 5px 5px; padding-left: 10px; border-left: thin solid #1abc9c;">On vendredi 28 février 2020 17:22:28 CET Francesco Bartoli wrote:<br />
<blockquote type="cite" class="spark_quote" style="margin: 5px 5px; padding-left: 10px; border-left: thin solid #e67e22;">However, we are using both modules so how can we handle exceptions properly<br />
for both of them?<br /></blockquote>
<br />
You can use both gdal.UseExceptions() and ogr.UseExceptions()<br />
<br />
<blockquote type="cite" class="spark_quote" style="margin: 5px 5px; padding-left: 10px; border-left: thin solid #e67e22;"><br />
Using ogr.UseExceptions() the<br />
call https://github.com/geopython/pygeoapi/pull/372/files#diff-b105ae3f7a36<br />
059b16bdc16a08071016R361 gives the same result silently without any message<br />
to system output this time.<br /></blockquote>
<br />
On a quick test, ogr.UseExceptions() does the job for me:<br />
<br />
$ OGR_GEOJSON_MAX_OBJ_SIZE=0 python<br />
<blockquote type="cite" class="spark_quote" style="margin: 5px 5px; padding-left: 10px; border-left: thin solid #e67e22;">
<blockquote type="cite" class="spark_quote" style="margin: 5px 5px; padding-left: 10px; border-left: thin solid #3498db;">
<blockquote type="cite" class="spark_quote" style="margin: 5px 5px; padding-left: 10px; border-left: thin solid #d35400;">from osgeo import ogr<br />
ogr.UseExceptions()<br />
ds = ogr.Open('poly.geojson')<br />
lyr = ds.GetLayer(0)<br />
lyr.GetNextFeature()<br /></blockquote>
</blockquote>
</blockquote>
Traceback (most recent call last):<br />
File "<stdin>", line 1, in <module><br />
File "/home/even/gdal/git/gdal/gdal/swig/python/build/lib.linux-x86_64-2.7/<br />
osgeo/ogr.py", line 1339, in GetNextFeature<br />
return _ogr.Layer_GetNextFeature(self, *args)<br />
RuntimeError: GeoJSON object too complex, please see the<br />
OGR_GEOJSON_MAX_OBJ_SIZE environment option<br />
<blockquote type="cite" class="spark_quote" style="margin: 5px 5px; padding-left: 10px; border-left: thin solid #e67e22;">
<blockquote type="cite" class="spark_quote" style="margin: 5px 5px; padding-left: 10px; border-left: thin solid #3498db;">
<blockquote type="cite" class="spark_quote" style="margin: 5px 5px; padding-left: 10px; border-left: thin solid #d35400;"><br /></blockquote>
</blockquote>
</blockquote>
<br />
--<br />
Spatialys - Geospatial professional services<br />
http://www.spatialys.com<br /></blockquote>
</div>
</body>
</html>