<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p><font face="Tahoma">Hi Jon!</font></p>
<p><font face="Tahoma">I don't know if there's an alternative to
GetFeatureCount. At least I couldn't find one in the API
documentation. Maybe there's a workaround I'm not aware of...<br>
</font></p>
<p><font face="Tahoma">What you could do is wrap the call of
GetFeatrueCount in a function which is killed after some time (2
approaches are discussed here:
<a class="moz-txt-link-freetext" href="https://stackoverflow.com/questions/40915527/kill-function-after-a-given-amount-of-time">https://stackoverflow.com/questions/40915527/kill-function-after-a-given-amount-of-time</a>).
With that approach the question remains of getting the value of
GetFeatureCount when the function gets killed. One could assume
that there are more features than 1 if the function takes too
long. This assumption might be a bit risky though...</font></p>
<p><font face="Tahoma">Best regards<br>
Roman<br>
</font></p>
<div class="moz-cite-prefix">Am 20.01.2022 um 10:00 schrieb Jon
Morris:<br>
</div>
<blockquote type="cite"
cite="mid:LO2P123MB48614F07875A3903D86A6D60825A9@LO2P123MB4861.GBRP123.PROD.OUTLOOK.COM">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="Generator" content="Microsoft Word 15 (filtered
medium)">
<style>@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-fareast-language:EN-US;}span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Arial",sans-serif;
color:black;
font-weight:normal;
font-style:normal;
text-decoration:none none;}.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri",sans-serif;
mso-fareast-language:EN-US;}div.WordSection1
{page:WordSection1;}</style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<div class="WordSection1">
<p class="MsoNormal"><span
style="font-family:"Arial",sans-serif;color:black">I'm
writing applications using the GDAL Python bindings and when
I profile for performance, GetFeatureCount frequently comes
out near the top. I'm often using it to check whether a
spatial or attribute filter has returned any features and
don't need the full count. When the layer contains millions
of features, there would be a big performance improvement if
we could exit the count early.<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-family:"Arial",sans-serif;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-family:"Arial",sans-serif;color:black">Is
there a better way of doing this? I've tried using
GetNextFeature instead, but there must be quite a lot of
overhead in that function as it is much slower. All I need
to know is if the layer has has 0, 1 or >1 features, I
don't need the actual count. Can anyone suggest the fastest
way of doing this in Python? I'm using GDAL 3.3.1 at the
moment but could upgrade if there is new functionality that
would help.<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-family:"Arial",sans-serif;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-family:"Arial",sans-serif;color:black">Thanks,<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-family:"Arial",sans-serif;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-family:"Arial",sans-serif;color:black">Jon<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-family:"Arial",sans-serif;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span
style="font-family:"Arial",sans-serif;color:#F6A124;mso-fareast-language:EN-GB">Jon
Morris<o:p></o:p></span></b></p>
<p class="MsoNormal"><b><span
style="font-family:"Arial",sans-serif;color:#4A4A49;mso-fareast-language:EN-GB">Software
Developer<o:p></o:p></span></b></p>
<p class="MsoNormal"><span
style="font-family:"Arial",sans-serif;color:black;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div dir="ltr"
style="mso-line-height-rule:exactly;-webkit-text-size-adjust:100%;direction:ltr;">
<table style="width:100%;" cellspacing="0" cellpadding="0"
border="0">
<tbody>
<tr style="font-size:0;">
<td style="vertical-align:top;" align="left">
<table style="font-size:0;" cellspacing="0"
cellpadding="0" border="0">
<tbody>
<tr style="font-size:0;">
<td style="padding:10px 0 0;vertical-align:top;"
align="left">
<table
style="font-size:0;color:#4A4A49;font-style:normal;font-weight:700;white-space:nowrap;"
cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr style="font-size:14.67px;">
<td
style="padding:0;vertical-align:top;font-family:Arial;"
align="left">e: <span
style="font-family:remialcxesans;font-size:1px;color:#FFFFFF;line-height:1px;"></span></td>
<td style="padding:0 0 0
4px;vertical-align:top;color:#F6A124;font-family:Arial;font-weight:400;"
align="left"><a
href="mailto:Jon.Morris@jbarisk.com"
target="_blank" id="LPlnk689713"
style="text-decoration:none;color:#F6A124;"
moz-do-not-send="true"><strong
style="font-weight:400;">Jon.Morris@jbarisk.com</strong></a></td>
</tr>
<tr style="font-size:14.67px;">
<td
style="padding:0;vertical-align:top;font-family:Arial;"
align="left">t: </td>
<td style="padding:0 0 0
4px;vertical-align:top;color:#F6A124;font-family:Arial;font-weight:400;"
align="left"><a
href="tel:+44%20(0)1756%20799919"
target="_blank" id="LPlnk689713"
style="text-decoration:none;color:#F6A124;"
moz-do-not-send="true"><strong
style="font-weight:400;">+44 (0)1756 799919</strong></a></td>
</tr>
<tr style="font-size:0;">
<td style="padding:0;vertical-align:top;"
align="left"><br>
</td>
<td style="padding:0 0 0
4px;vertical-align:top;" align="left"><br>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr
style="color:#000001;font-size:14.67px;font-style:normal;font-weight:400;white-space:nowrap;">
<td style="vertical-align:top;font-family:Arial;"
align="left"><a href="http://www.jbarisk.com/"
target="_blank" id="LPlnk689713" title="Click to visit
our website"
style="text-decoration:none;color:#F6A124;"
moz-do-not-send="true"><strong
style="font-weight:400;">www.jbarisk.com</strong></a></td>
</tr>
<tr style="font-size:0;">
<td style="vertical-align:top;" align="left">
<table style="font-size:0;" cellspacing="0"
cellpadding="0" border="0">
<tbody>
<tr style="font-size:0;">
<td style="padding:10px 0 0;vertical-align:top;"
align="left">
<table style="font-size:0;" cellspacing="0"
cellpadding="0" border="0">
<tbody>
<tr style="font-size:0;">
<td rowspan="3" style="padding:0 0
5px;vertical-align:top;" align="left">
<table style="width:100%;font-size:0;"
cellspacing="0" cellpadding="0"
border="0">
<tbody>
<tr style="font-size:0;">
<td style="vertical-align:top;"
align="left">
<table
style="font-size:0;line-height:normal;"
cellspacing="0"
cellpadding="0" border="0">
<tbody>
<tr style="font-size:0;">
<td style="padding:10px 0
15px;vertical-align:top;" align="left"><img
src="cid:part1.0esr6hgu.CVr9uaW9@gmail.com"
alt=""
style="height:52px;min-height:52px;max-height:52px;font-size:0;"
class="" height="52"
border="0"></td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr style="font-size:0;">
<td style="vertical-align:top;"
align="left">
<table style="font-size:0;"
cellspacing="0"
cellpadding="0" border="0">
<tbody>
<tr style="font-size:0;">
<td style="padding:0 0
12px;vertical-align:top;"
align="left">
<table
style="height:30px;font-size:0;"
cellspacing="0"
cellpadding="0"
border="0">
<tbody>
<tr
style="font-size:0;">
<td
style="vertical-align:top;"
align="left">
<table
style="font-size:0;line-height:normal;"
cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr
style="font-size:0;">
<td
style="padding:0
4px 5px
0;vertical-align:top;"
align="left"><a
href="https://www.facebook.com/TheFloodPeople" target="_blank"
id="LPlnk689713"
style="text-decoration:none;" moz-do-not-send="true"><img
src="cid:part2.7LjeqlyX.Ist81ViG@gmail.com"
title="Facebook" alt="Facebook"
style="width:34px;min-width:34px;max-width:34px;font-size:12px;"
class=""
width="34"
border="0"></a></td>
</tr>
</tbody>
</table>
</td>
<td
style="vertical-align:top;"
align="left">
<table
style="font-size:0;line-height:normal;"
cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr
style="font-size:0;">
<td
style="padding:0
4px 5px
0;vertical-align:top;"
align="left"><a
href="https://www.linkedin.com/company/jba-risk-management/"
target="_blank"
id="LPlnk689713" style="text-decoration:none;" moz-do-not-send="true"><img
src="cid:part3.eFhRoBO6.t0HOEJUz@gmail.com" title="LinkedIn"
alt="LinkedIn"
style="width:34px;min-width:34px;max-width:34px;font-size:12px;"
class=""
width="34"
border="0"></a></td>
</tr>
</tbody>
</table>
</td>
<td
style="vertical-align:top;"
align="left">
<table
style="font-size:0;line-height:normal;"
cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr
style="font-size:0;">
<td
style="padding:0
4px 5px
0;vertical-align:top;"
align="left"><a
href="https://twitter.com/JBARisk" target="_blank" id="LPlnk689713"
style="text-decoration:none;"
moz-do-not-send="true"><img src="cid:part4.369kEPG0.Lo9mYmNJ@gmail.com"
title="Twitter" alt="Twitter"
style="width:34px;min-width:34px;max-width:34px;font-size:12px;"
class=""
width="34"
border="0"></a></td>
</tr>
</tbody>
</table>
</td>
<td
style="vertical-align:top;"
align="left">
<table
style="font-size:0;line-height:normal;"
cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr
style="font-size:0;">
<td
style="padding:0
4px 5px
0;vertical-align:top;"
align="left"><a
href="https://www.youtube.com/channel/UC0iatom2jYbW96voW0rlpCw"
target="_blank"
id="LPlnk689713" style="text-decoration:none;" moz-do-not-send="true"><img
src="cid:part5.pTAwFMWq.0PKRZ3Mh@gmail.com" title="YouTube"
alt="YouTube"
style="width:34px;min-width:34px;max-width:34px;font-size:12px;"
class=""
width="34"
border="0"></a></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
<td style="padding:0;"> </td>
</tr>
<tr style="font-size:0;">
<td style="padding:0;"> </td>
</tr>
<tr style="font-size:0;">
<td style="padding:0;"> </td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr style="font-size:0;">
<td style="vertical-align:top;" align="left">
<table style="font-size:0;" cellspacing="0"
cellpadding="0" border="0">
<tbody>
<tr style="font-size:0;">
<td style="padding:7px 0 5px;border-top:solid 1px
#4A4A49;border-right:none;border-bottom:none;border-left:none;vertical-align:top;"
align="left">
<table
style="white-space:normal;color:#444444;font-size:14.67px;font-family:Calibri,Arial,sans-serif;font-weight:400;font-style:normal;text-align:left;line-height:12px;"
cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr style="font-size:9px;">
<td style="font-family:Arial;"><span
style="background-color:#FFFFFF;">All
JBA Risk Management's email messages
contain confidential information and
are intended only for the
individual(s) named. If you are not
the named addressee you should not
disseminate, distribute or copy this
e-mail.</span><br>
<span style="background-color:#FFFFFF;">Please
notify the sender immediately by email
if you have received this email by
mistake and delete this email from
your system.</span> <br>
<span style="background-color:#FFFFFF;">JBA
Risk Management Limited is registered
in England, company number 07732946, 1
Broughton Park, Old Lane North,
Broughton, Skipton, North Yorkshire,
BD23 3FD, England</span><span
style="color:#000001;">.</span><br>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
<br>
<fieldset class="moz-mime-attachment-header"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
gdal-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:gdal-dev@lists.osgeo.org">gdal-dev@lists.osgeo.org</a>
<a class="moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/gdal-dev">https://lists.osgeo.org/mailman/listinfo/gdal-dev</a>
</pre>
</blockquote>
</body>
</html>