|  | 
| 144 | 144 |     "    format=\"parquet[snappy]\",\n", | 
| 145 | 145 |     ")" | 
| 146 | 146 |    ] | 
|  | 147 | +  }, | 
|  | 148 | +  { | 
|  | 149 | +   "cell_type": "markdown", | 
|  | 150 | +   "metadata": {}, | 
|  | 151 | +   "source": [ | 
|  | 152 | +    "## Search performance\n", | 
|  | 153 | +    "\n", | 
|  | 154 | +    "Here's a performance comparison when searching with **stacrs** versus [pystac-client](https://pystac-client.readthedocs.io/)." | 
|  | 155 | +   ] | 
|  | 156 | +  }, | 
|  | 157 | +  { | 
|  | 158 | +   "cell_type": "code", | 
|  | 159 | +   "execution_count": null, | 
|  | 160 | +   "metadata": {}, | 
|  | 161 | +   "outputs": [ | 
|  | 162 | +    { | 
|  | 163 | +     "name": "stdout", | 
|  | 164 | +     "output_type": "stream", | 
|  | 165 | +     "text": [ | 
|  | 166 | +      "pystac-client: 7.600378751754761s (467 items)\n" | 
|  | 167 | +     ] | 
|  | 168 | +    }, | 
|  | 169 | +    { | 
|  | 170 | +     "ename": "TypeError", | 
|  | 171 | +     "evalue": "object of type '_asyncio.Future' has no len()", | 
|  | 172 | +     "output_type": "error", | 
|  | 173 | +     "traceback": [ | 
|  | 174 | +      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", | 
|  | 175 | +      "\u001b[0;31mTypeError\u001b[0m                                 Traceback (most recent call last)", | 
|  | 176 | +      "Cell \u001b[0;32mIn[2], line 15\u001b[0m\n\u001b[1;32m     13\u001b[0m items \u001b[38;5;241m=\u001b[39m stacrs\u001b[38;5;241m.\u001b[39msearch(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhttps://stac.eoapi.dev\u001b[39m\u001b[38;5;124m\"\u001b[39m, collections\u001b[38;5;241m=\u001b[39m[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mWildFires-LosAngeles-Jan-2025\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n\u001b[1;32m     14\u001b[0m end \u001b[38;5;241m=\u001b[39m time\u001b[38;5;241m.\u001b[39mtime()\n\u001b[0;32m---> 15\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mstacrs: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mend\u001b[38;5;250m \u001b[39m\u001b[38;5;241m-\u001b[39m\u001b[38;5;250m \u001b[39mstart\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124ms (\u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28;43mlen\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mitems\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m items)\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", | 
|  | 177 | +      "\u001b[0;31mTypeError\u001b[0m: object of type '_asyncio.Future' has no len()" | 
|  | 178 | +     ] | 
|  | 179 | +    } | 
|  | 180 | +   ], | 
|  | 181 | +   "source": [ | 
|  | 182 | +    "import time\n", | 
|  | 183 | +    "from pystac_client import Client\n", | 
|  | 184 | +    "import stacrs\n", | 
|  | 185 | +    "\n", | 
|  | 186 | +    "client = Client.open(\"https://stac.eoapi.dev\")\n", | 
|  | 187 | +    "start = time.time()\n", | 
|  | 188 | +    "item_search = client.search(collections=[\"WildFires-LosAngeles-Jan-2025\"])\n", | 
|  | 189 | +    "items = list(item_search.items_as_dicts())\n", | 
|  | 190 | +    "end = time.time()\n", | 
|  | 191 | +    "print(f\"pystac-client: {end - start}s ({len(items)} items)\")\n", | 
|  | 192 | +    "\n", | 
|  | 193 | +    "start = time.time()\n", | 
|  | 194 | +    "items = await stacrs.search(\"https://stac.eoapi.dev\", collections=[\"WildFires-LosAngeles-Jan-2025\"])\n", | 
|  | 195 | +    "end = time.time()\n", | 
|  | 196 | +    "print(f\"stacrs: {end - start}s ({len(items)} items)\")" | 
|  | 197 | +   ] | 
| 147 | 198 |   } | 
| 148 | 199 |  ], | 
| 149 | 200 |  "metadata": { | 
|  | 
0 commit comments