Last active
November 16, 2023 21:11
-
-
Save Sharan123/87597a1002fc5bb65c4280b37c91972f to your computer and use it in GitHub Desktop.
Open Meteo Weather Feature Crawler
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 18, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import pandas as pd\n", | |
"import numpy as np\n", | |
"import geopandas as gpd\n", | |
"import requests\n", | |
"from pathlib import Path\n", | |
"import time" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 19, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"#Load the geo data\n", | |
"\n", | |
"path_to_geojson = \"../Datasets/TransmissionLineData/BPA_TransmissionLines.geojson\"\n", | |
"lines = gpd.read_file(path_to_geojson)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"**Extracting Lines of Interest, i.e. XRefCd's from the outages for matching**" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 20, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Each XRefCd is a list of lists, given as a string in the form of [Xref1], [XRef2, Xref3], [Xref4] etc. for example\n", | |
"def extract_xrefcds(xrefcds):\n", | |
" xrefcds = xrefcds.replace(\"[\", \"\").replace(\"]\", \"\").split(\",\")\n", | |
" xrefcds = [xrefcd.strip() for xrefcd in xrefcds]\n", | |
" #print('Found the following XRefCds: ', xrefcds)\n", | |
" return xrefcds" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 25, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Cells crossed: 1020\n", | |
"Points considered: 44498\n" | |
] | |
} | |
], | |
"source": [ | |
"cells = set()\n", | |
"count = 0\n", | |
"\n", | |
"#Note that the 'lines' geojson has multiple entries for some XRefCd; this successfully handles that\n", | |
"for idx, item in lines.iterrows():\n", | |
" if not(item['XRefCd'] in interest_xrefs): #If the current xrefcd/line not used, skip it\n", | |
" continue\n", | |
" \n", | |
" g = item['geometry']\n", | |
" for line in g.geoms: #This seems to be just 1; some sort of wrapper\n", | |
" for c in line.coords: #all of the pairs\n", | |
" lon = round(c[0],1) #Cells are centered at 0.1 degree longitude/latitudes resolution in OpenMeteo dataset\n", | |
" lat = round(c[1],1)\n", | |
" cells.add( (lon,lat) )\n", | |
" count += 1\n", | |
"\n", | |
"print(\"Cells crossed:\", len(cells))\n", | |
"print(\"Points considered: \",count)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Downloading the OpenMeteo Dataset" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 26, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"save_path = Path(\"../Datasets/open-metro-cells/\")\n", | |
"start_date= \"2016-01-01\" # YYYY-MM-DD, Inclusive\n", | |
"end_date= \"2022-04-06\" #Also inclusive\n", | |
"\n", | |
"cells_list = [c for c in cells] #The cells of interest as a list\n", | |
"cells_list.sort() #To maintain consistant order if something goes wrong and the requests have to be resumed\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"cell_-124.5_42.7 (1/1020)\n", | |
"File already exists for cell (-124.5, 42.7). Not Saving.\n", | |
"cell_-124.5_42.8 (2/1020)\n", | |
"File already exists for cell (-124.5, 42.8). Not Saving.\n", | |
"cell_-124.5_42.9 (3/1020)\n", | |
"File already exists for cell (-124.5, 42.9). Not Saving.\n", | |
"cell_-124.4_42.4 (4/1020)\n", | |
"File already exists for cell (-124.4, 42.4). Not Saving.\n", | |
"cell_-124.4_42.5 (5/1020)\n", | |
"File already exists for cell (-124.4, 42.5). Not Saving.\n", | |
"cell_-124.4_42.6 (6/1020)\n", | |
"File already exists for cell (-124.4, 42.6). Not Saving.\n", | |
"cell_-124.4_42.7 (7/1020)\n", | |
"File already exists for cell (-124.4, 42.7). Not Saving.\n", | |
"cell_-124.4_42.9 (8/1020)\n", | |
"File already exists for cell (-124.4, 42.9). Not Saving.\n", | |
"cell_-124.4_43.0 (9/1020)\n", | |
"File already exists for cell (-124.4, 43.0). Not Saving.\n", | |
"cell_-124.4_43.1 (10/1020)\n", | |
"File already exists for cell (-124.4, 43.1). Not Saving.\n", | |
"cell_-124.3_43.1 (11/1020)\n", | |
"cell_-124.3_48.1 (12/1020)\n", | |
"cell_-124.2_43.1 (13/1020)\n", | |
"Too many requests, waiting 1 second...\n", | |
"Error on cell (-124.2, 43.1). Code 429. Not Saving...\n" | |
] | |
} | |
], | |
"source": [ | |
"count = 0\n", | |
"total = len(cells_list)\n", | |
"\n", | |
"if not save_path.is_dir():\n", | |
" save_path.mkdir()\n", | |
"\n", | |
"for cell in cells_list:\n", | |
" #Progress tracker\n", | |
" count += 1\n", | |
" \n", | |
" lon = cell[0]\n", | |
" lat = cell[1]\n", | |
" print(f\"cell_{lon}_{lat} ({count}/{total})\")\n", | |
"\n", | |
" # Check if the file for this cell already exists, if so, skip it. Use pathlib Path for this\n", | |
" # check if file cell_{lon}_{lat}.csv exists in save_path\n", | |
" if Path(save_path/f\"cell_{lon}_{lat}.csv\").is_file():\n", | |
" print(f\"File already exists for cell {cell}. Not Saving.\")\n", | |
" continue\n", | |
" #Note the cell selection method is 'Nearest'; there are various ways of selecting cells, see https://open-meteo.com/en/docs/overview\n", | |
" response = requests.get(f\"https://archive-api.open-meteo.com/v1/archive?latitude={lat}&longitude={lon}&start_date={start_date}&end_date={end_date}&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,precipitation,rain,snowfall,weathercode,surface_pressure,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,windspeed_100m,winddirection_10m,winddirection_100m,windgusts_10m,soil_temperature_0_to_7cm,soil_temperature_7_to_28cm,soil_moisture_0_to_7cm,soil_moisture_7_to_28cm&timezone=auto&format=csv\", headers = {'User-agent': 'Weather Historical Crawler 0.2'})\n", | |
" if (response.status_code == 429): #Too many requests\n", | |
" print(\"Too many requests, waiting 1 second...\")\n", | |
" time.sleep(1)\n", | |
" response = requests.get(f\"https://archive-api.open-meteo.com/v1/archive?latitude={lat}&longitude={lon}&start_date={start_date}&end_date={end_date}&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,precipitation,rain,snowfall,weathercode,surface_pressure,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,windspeed_100m,winddirection_10m,winddirection_100m,windgusts_10m,soil_temperature_0_to_7cm,soil_temperature_7_to_28cm,soil_moisture_0_to_7cm,soil_moisture_7_to_28cm&timezone=auto\")\n", | |
" if(response.status_code != 200): \n", | |
" print(f\"Error on cell {cell}. Code {response.status_code}. Not Saving...\")\n", | |
" break #don't continue if request failed\n", | |
" \n", | |
" #Get the json representation\n", | |
" j = response.json()\n", | |
"\n", | |
" #Continue if mismatched\n", | |
" if abs(j['latitude'] - lat) > 0.1005 or abs(j[\"longitude\"] - lon) > 0.1005: #Check to make sure it is correct cell, with tolerance for values like (-124.5, 42.699997)\n", | |
" print(f\"Cell did not match expected coords! actual lon/lat = {j['longitude'],j['latitude']}, expected {cell}. Not Saving...\")\n", | |
" print(f'Difference lon/lat = {abs(j[\"longitude\"] - lon), abs(j[\"latitude\"] - lat)}')\n", | |
" continue\n", | |
" \n", | |
" #create the df from the hourly data (ignoring the metadata such as units, etc.)\n", | |
" df = pd.DataFrame(data=j[\"hourly\"])\n", | |
"\n", | |
" # Save the data\n", | |
" df.to_csv(path_or_buf=save_path / f\"cell_{lon}_{lat}.csv\",index=False)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"**Note! We do have a couple of lines which have 2 entries for the same XRefCd in the BPA_TransmissionLines** \n", | |
"We are handling it by including both of the geojson shapefiles for the two XRefCds" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"-----------------------" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Trying something else since we are getting 429 Error quickly (after ~3 API calls).\n", | |
" **So trying to merge all cell lat,lon and see if it works**\n", | |
" " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 27, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(-124.5, 42.7)" | |
] | |
}, | |
"execution_count": 27, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"cells_list[0]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 28, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"https://archive-api.open-meteo.com/v1/archive?latitude=42.7,42.8,42.9,42.4,42.5,42.6,42.7,42.9,43.0,43.1,43.1,48.1,43.1,43.2,43.3,43.4,43.5,43.6,43.7,48.1,43.1,43.2,43.4,43.7,48.1,43.2,44.0,48.1,44.0,45.2,47.0,48.1,44.0,45.1,45.2,45.3,45.4,45.5,46.2,46.4,46.9,47.0,48.1,44.0,45.1,45.4,45.5,46.2,46.4,46.7,46.9,47.0,48.1,44.0,44.6,45.4,45.5,45.6,46.2,46.3,46.4,46.5,46.6,46.7,46.9,47.0,48.1,44.0,44.6,45.4,45.6,46.2,46.3,46.5,46.6,47.0,48.1,44.0,44.6,45.3,45.4,45.6,46.1,46.2,46.3,46.5,46.6,47.0,48.1,44.0,44.6,45.3,45.6,45.7,45.8,46.1,46.6,47.0,48.1,44.0,44.1,44.2,44.3,44.4,44.5,44.6,44.7,44.8,44.9,45.3,45.6,46.1,46.6,47.0,47.3,47.4,48.0,48.1,43.7,43.8,44.0,44.1,44.6,44.7,44.8,44.9,45.5,45.6,46.1,46.6,47.0,47.1,47.2,47.3,47.4,47.5,47.6,48.0,43.8,44.0,44.6,45.0,45.1,46.1,46.2,46.3,46.4,46.5,46.6,46.9,47.0,47.3,47.6,47.7,48.0,44.6,45.1,45.2,46.1,46.2,46.6,46.8,46.9,47.0,47.3,47.4,47.7,47.8,47.9,48.0,48.5,43.9,44.6,44.7,45.2,45.3,45.4,46.1,46.6,47.0,47.4,47.5,48.5,43.9,44.7,44.8,45.3,45.7,45.9,46.0,46.1,46.6,47.0,47.5,48.5,43.8,43.9,44.8,45.3,45.7,45.8,45.9,46.5,46.6,47.0,48.9,43.7,43.8,44.7,44.8,45.3,45.6,45.7,47.0,48.8,48.9,43.7,44.7,44.8,44.9,45.3,45.4,45.5,45.6,45.7,47.0,47.1,48.8,44.7,44.8,44.9,45.0,45.4,45.5,45.6,45.7,46.9,47.0,47.1,47.2,48.7,48.8,44.7,45.0,45.4,45.5,45.6,45.7,47.0,47.1,47.2,47.5,47.8,48.3,48.4,48.5,48.6,48.7,44.7,44.8,45.0,45.4,45.5,45.6,45.7,47.1,47.5,47.9,48.1,48.2,48.3,44.8,45.0,45.4,45.5,45.6,45.7,47.1,47.4,47.5,47.6,47.7,47.9,48.0,48.1,44.8,45.0,45.4,45.6,45.7,47.1,47.2,47.3,47.4,47.5,47.7,47.8,47.9,44.8,45.0,45.4,45.5,45.7,45.8,47.2,47.3,47.4,47.5,47.9,44.8,44.9,45.0,45.1,45.5,45.7,45.8,47.2,47.3,47.4,47.5,47.9,44.9,45.1,45.5,45.7,45.8,47.2,47.4,47.8,47.9,43.6,43.7,44.9,45.1,45.5,45.7,45.8,47.2,47.4,47.8,42.0,42.1,43.5,43.6,44.9,45.0,45.1,45.5,45.6,45.7,45.8,47.2,47.3,47.4,47.7,42.0,43.4,43.5,45.0,45.1,45.2,45.5,45.6,45.7,45.8,47.3,47.7,43.4,45.1,45.2,45.6,45.7,45.8,47.2,47.3,47.7,43.3,43.4,45.1,45.2,45.3,45.6,45.7,45.8,47.2,47.7,43.0,43.1,43.3,44.3,44.4,44.5,44.6,44.7,45.2,45.3,45.4,45.6,45.7,45.8,45.9,47.2,47.7,47.8,43.1,43.2,43.3,43.4,43.5,43.6,43.7,43.8,43.9,44.0,44.1,44.2,44.3,44.8,44.9,45.0,45.1,45.2,45.3,45.4,45.5,45.6,45.7,45.8,45.9,47.2,47.8,43.4,43.8,45.3,45.4,45.5,45.6,45.7,45.8,47.1,47.2,47.8,45.3,45.4,45.5,45.7,47.1,47.2,47.7,47.8,45.4,45.5,45.7,45.8,46.8,46.9,47.0,47.1,47.2,47.7,45.4,45.5,45.7,45.8,45.9,46.7,46.8,47.1,47.7,41.7,45.4,45.5,45.6,45.7,45.9,46.0,46.6,46.7,47.1,47.2,47.7,45.2,45.3,45.4,45.6,45.7,46.0,46.1,46.5,46.6,47.0,47.1,47.2,47.3,47.5,47.7,45.0,45.1,45.2,45.7,45.8,46.1,46.5,46.9,47.0,47.2,47.3,47.4,47.5,47.7,45.7,45.8,46.1,46.5,46.9,47.3,47.7,45.7,45.8,46.1,46.2,46.3,46.5,46.9,47.3,47.7,47.8,45.8,45.9,46.3,46.4,46.5,46.7,46.8,46.9,47.3,47.8,45.8,45.9,46.2,46.3,46.5,46.6,46.7,46.8,47.4,47.8,47.9,45.5,45.6,45.8,45.9,46.0,46.3,46.6,46.8,46.9,47.0,47.4,47.5,47.9,48.0,45.6,45.7,45.8,45.9,46.0,46.1,46.2,46.3,46.6,46.7,46.8,46.9,47.0,47.1,47.5,48.0,45.9,46.3,46.4,46.6,46.7,47.1,47.2,47.3,47.5,47.6,48.0,45.9,46.3,46.4,46.5,46.6,46.7,47.3,47.4,47.6,47.7,48.0,45.8,45.9,46.0,46.2,46.4,46.5,46.7,47.4,47.5,47.7,47.8,48.0,45.7,45.8,45.9,46.0,46.1,46.2,46.4,46.5,46.7,47.5,47.6,47.7,47.8,47.9,48.0,45.7,45.9,46.1,46.2,46.3,46.4,46.5,46.6,46.7,47.7,47.8,47.9,48.0,45.6,45.7,45.9,46.0,46.2,46.3,46.5,46.6,46.7,47.8,47.9,48.0,45.6,46.0,46.1,46.2,46.3,46.6,47.9,45.6,45.7,46.1,46.2,46.3,46.6,47.9,45.6,45.7,45.8,46.1,46.3,46.4,46.6,47.6,47.7,47.8,47.9,45.6,45.8,45.9,46.1,46.4,46.5,46.6,47.8,45.5,45.6,45.9,46.0,46.1,46.5,46.6,47.8,45.4,45.5,46.0,46.1,47.7,47.8,45.3,45.4,47.7,45.3,47.7,45.3,47.7,47.7,47.7,48.4,48.5,48.6,47.7,48.3,48.4,48.6,48.7,46.4,47.7,48.1,48.2,48.3,48.7,48.8,46.4,47.7,48.0,48.1,48.7,48.8,46.4,47.7,47.8,47.9,48.0,48.7,48.8,46.4,46.6,46.7,47.7,47.8,47.9,48.3,48.4,48.5,48.6,48.7,48.8,48.9,49.0,46.4,46.6,47.7,47.8,48.2,48.3,48.4,48.5,46.4,46.5,46.6,47.7,47.8,48.2,46.4,47.7,48.2,46.4,46.5,47.7,47.8,48.2,46.5,47.8,48.2,47.8,47.9,48.2,47.9,48.2,48.3,47.8,47.9,48.3,46.7,46.8,47.8,47.9,48.0,48.3,48.4,48.5,46.5,46.6,46.7,46.8,46.9,47.7,47.8,48.0,48.1,48.5,48.6,46.9,47.0,47.7,48.1,48.6,48.7,47.0,47.1,47.7,48.1,48.7,47.1,47.2,47.6,47.7,48.1,48.6,48.7,47.2,47.3,47.6,48.0,48.1,48.5,48.6,47.3,47.4,47.5,48.0,48.4,48.5,47.4,47.5,48.0,48.4,48.5,43.2,47.4,47.5,47.9,48.0,48.4,48.5,43.2,47.4,47.5,47.9,48.0,48.4,43.3,43.4,47.4,47.5,47.9,48.0,48.4,47.4,48.0,48.4,47.4,48.0,48.1,48.4,47.4,48.1,48.4,47.3,47.4,48.1,48.2,48.3,48.4,47.3,48.2,48.3,47.2,47.3,48.7,47.2,48.6,48.7,47.1,47.2,48.6,47.1,47.5,47.6,48.5,48.6,47.0,47.1,47.5,47.6,47.7,48.4,48.5,47.0,47.4,47.5,47.7,47.8,47.9,48.2,48.4,46.9,47.0,47.3,47.4,47.7,47.8,47.9,48.0,48.1,48.2,48.4,46.8,46.9,47.2,47.3,47.7,48.0,48.1,48.2,48.3,48.4,44.4,46.8,47.0,47.1,47.2,48.3,48.4,44.3,44.4,46.7,46.8,46.9,47.0,46.7,46.7,42.5,46.7,42.5,46.6,46.7,42.5,42.6,42.7,46.6,46.5,46.6,46.4,46.5,46.4,46.4,46.5,46.5,46.5,46.5,46.5,46.3,46.4,46.5,46.3,46.3,46.3,46.3,43.3,46.3,43.3,43.4,46.2,46.3,43.4,43.5,46.2,43.5,43.6,43.7,46.2,43.5,43.6,43.7,46.2,43.5,43.6,43.7,43.8,43.9,46.2,43.5,43.8,43.9,46.2,46.3,43.5,43.9,44.0,43.5,43.6,43.8,43.9,44.0,44.5,43.6,43.7,43.8,44.5,44.6,43.5,43.6,43.7,44.6,44.7,43.5,43.5,43.5&longitude=-124.5,-124.5,-124.5,-124.4,-124.4,-124.4,-124.4,-124.4,-124.4,-124.4,-124.3,-124.3,-124.2,-124.2,-124.2,-124.2,-124.2,-124.2,-124.2,-124.2,-124.1,-124.1,-124.1,-124.1,-124.1,-124.0,-124.0,-124.0,-123.9,-123.9,-123.9,-123.9,-123.8,-123.8,-123.8,-123.8,-123.8,-123.8,-123.8,-123.8,-123.8,-123.8,-123.8,-123.7,-123.7,-123.7,-123.7,-123.7,-123.7,-123.7,-123.7,-123.7,-123.7,-123.6,-123.6,-123.6,-123.6,-123.6,-123.6,-123.6,-123.6,-123.6,-123.6,-123.6,-123.6,-123.6,-123.6,-123.5,-123.5,-123.5,-123.5,-123.5,-123.5,-123.5,-123.5,-123.5,-123.5,-123.4,-123.4,-123.4,-123.4,-123.4,-123.4,-123.4,-123.4,-123.4,-123.4,-123.4,-123.4,-123.3,-123.3,-123.3,-123.3,-123.3,-123.3,-123.3,-123.3,-123.3,-123.3,-123.2,-123.2,-123.2,-123.2,-123.2,-123.2,-123.2,-123.2,-123.2,-123.2,-123.2,-123.2,-123.2,-123.2,-123.2,-123.2,-123.2,-123.2,-123.2,-123.1,-123.1,-123.1,-123.1,-123.1,-123.1,-123.1,-123.1,-123.1,-123.1,-123.1,-123.1,-123.1,-123.1,-123.1,-123.1,-123.1,-123.1,-123.1,-123.1,-123.0,-123.0,-123.0,-123.0,-123.0,-123.0,-123.0,-123.0,-123.0,-123.0,-123.0,-123.0,-123.0,-123.0,-123.0,-123.0,-123.0,-122.9,-122.9,-122.9,-122.9,-122.9,-122.9,-122.9,-122.9,-122.9,-122.9,-122.9,-122.9,-122.9,-122.9,-122.9,-122.9,-122.8,-122.8,-122.8,-122.8,-122.8,-122.8,-122.8,-122.8,-122.8,-122.8,-122.8,-122.8,-122.7,-122.7,-122.7,-122.7,-122.7,-122.7,-122.7,-122.7,-122.7,-122.7,-122.7,-122.7,-122.6,-122.6,-122.6,-122.6,-122.6,-122.6,-122.6,-122.6,-122.6,-122.6,-122.6,-122.5,-122.5,-122.5,-122.5,-122.5,-122.5,-122.5,-122.5,-122.5,-122.5,-122.4,-122.4,-122.4,-122.4,-122.4,-122.4,-122.4,-122.4,-122.4,-122.4,-122.4,-122.4,-122.3,-122.3,-122.3,-122.3,-122.3,-122.3,-122.3,-122.3,-122.3,-122.3,-122.3,-122.3,-122.3,-122.3,-122.2,-122.2,-122.2,-122.2,-122.2,-122.2,-122.2,-122.2,-122.2,-122.2,-122.2,-122.2,-122.2,-122.2,-122.2,-122.2,-122.1,-122.1,-122.1,-122.1,-122.1,-122.1,-122.1,-122.1,-122.1,-122.1,-122.1,-122.1,-122.1,-122.0,-122.0,-122.0,-122.0,-122.0,-122.0,-122.0,-122.0,-122.0,-122.0,-122.0,-122.0,-122.0,-122.0,-121.9,-121.9,-121.9,-121.9,-121.9,-121.9,-121.9,-121.9,-121.9,-121.9,-121.9,-121.9,-121.9,-121.8,-121.8,-121.8,-121.8,-121.8,-121.8,-121.8,-121.8,-121.8,-121.8,-121.8,-121.7,-121.7,-121.7,-121.7,-121.7,-121.7,-121.7,-121.7,-121.7,-121.7,-121.7,-121.7,-121.6,-121.6,-121.6,-121.6,-121.6,-121.6,-121.6,-121.6,-121.6,-121.5,-121.5,-121.5,-121.5,-121.5,-121.5,-121.5,-121.5,-121.5,-121.5,-121.4,-121.4,-121.4,-121.4,-121.4,-121.4,-121.4,-121.4,-121.4,-121.4,-121.4,-121.4,-121.4,-121.4,-121.4,-121.3,-121.3,-121.3,-121.3,-121.3,-121.3,-121.3,-121.3,-121.3,-121.3,-121.3,-121.3,-121.2,-121.2,-121.2,-121.2,-121.2,-121.2,-121.2,-121.2,-121.2,-121.1,-121.1,-121.1,-121.1,-121.1,-121.1,-121.1,-121.1,-121.1,-121.1,-121.0,-121.0,-121.0,-121.0,-121.0,-121.0,-121.0,-121.0,-121.0,-121.0,-121.0,-121.0,-121.0,-121.0,-121.0,-121.0,-121.0,-121.0,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.8,-120.8,-120.8,-120.8,-120.8,-120.8,-120.8,-120.8,-120.8,-120.8,-120.8,-120.7,-120.7,-120.7,-120.7,-120.7,-120.7,-120.7,-120.7,-120.6,-120.6,-120.6,-120.6,-120.6,-120.6,-120.6,-120.6,-120.6,-120.6,-120.5,-120.5,-120.5,-120.5,-120.5,-120.5,-120.5,-120.5,-120.5,-120.4,-120.4,-120.4,-120.4,-120.4,-120.4,-120.4,-120.4,-120.4,-120.4,-120.4,-120.4,-120.3,-120.3,-120.3,-120.3,-120.3,-120.3,-120.3,-120.3,-120.3,-120.3,-120.3,-120.3,-120.3,-120.3,-120.3,-120.2,-120.2,-120.2,-120.2,-120.2,-120.2,-120.2,-120.2,-120.2,-120.2,-120.2,-120.2,-120.2,-120.2,-120.1,-120.1,-120.1,-120.1,-120.1,-120.1,-120.1,-120.0,-120.0,-120.0,-120.0,-120.0,-120.0,-120.0,-120.0,-120.0,-120.0,-119.9,-119.9,-119.9,-119.9,-119.9,-119.9,-119.9,-119.9,-119.9,-119.9,-119.8,-119.8,-119.8,-119.8,-119.8,-119.8,-119.8,-119.8,-119.8,-119.8,-119.8,-119.7,-119.7,-119.7,-119.7,-119.7,-119.7,-119.7,-119.7,-119.7,-119.7,-119.7,-119.7,-119.7,-119.7,-119.6,-119.6,-119.6,-119.6,-119.6,-119.6,-119.6,-119.6,-119.6,-119.6,-119.6,-119.6,-119.6,-119.6,-119.6,-119.6,-119.5,-119.5,-119.5,-119.5,-119.5,-119.5,-119.5,-119.5,-119.5,-119.5,-119.5,-119.4,-119.4,-119.4,-119.4,-119.4,-119.4,-119.4,-119.4,-119.4,-119.4,-119.4,-119.3,-119.3,-119.3,-119.3,-119.3,-119.3,-119.3,-119.3,-119.3,-119.3,-119.3,-119.3,-119.2,-119.2,-119.2,-119.2,-119.2,-119.2,-119.2,-119.2,-119.2,-119.2,-119.2,-119.2,-119.2,-119.2,-119.2,-119.1,-119.1,-119.1,-119.1,-119.1,-119.1,-119.1,-119.1,-119.1,-119.1,-119.1,-119.1,-119.1,-119.0,-119.0,-119.0,-119.0,-119.0,-119.0,-119.0,-119.0,-119.0,-119.0,-119.0,-119.0,-118.9,-118.9,-118.9,-118.9,-118.9,-118.9,-118.9,-118.8,-118.8,-118.8,-118.8,-118.8,-118.8,-118.8,-118.7,-118.7,-118.7,-118.7,-118.7,-118.7,-118.7,-118.7,-118.7,-118.7,-118.7,-118.6,-118.6,-118.6,-118.6,-118.6,-118.6,-118.6,-118.6,-118.5,-118.5,-118.5,-118.5,-118.5,-118.5,-118.5,-118.5,-118.4,-118.4,-118.4,-118.4,-118.4,-118.4,-118.3,-118.3,-118.3,-118.2,-118.2,-118.1,-118.1,-118.0,-117.9,-117.9,-117.9,-117.9,-117.8,-117.8,-117.8,-117.8,-117.8,-117.7,-117.7,-117.7,-117.7,-117.7,-117.7,-117.7,-117.6,-117.6,-117.6,-117.6,-117.6,-117.6,-117.5,-117.5,-117.5,-117.5,-117.5,-117.5,-117.5,-117.4,-117.4,-117.4,-117.4,-117.4,-117.4,-117.4,-117.4,-117.4,-117.4,-117.4,-117.4,-117.4,-117.4,-117.3,-117.3,-117.3,-117.3,-117.3,-117.3,-117.3,-117.3,-117.2,-117.2,-117.2,-117.2,-117.2,-117.2,-117.1,-117.1,-117.1,-117.0,-117.0,-117.0,-117.0,-117.0,-116.9,-116.9,-116.9,-116.8,-116.8,-116.8,-116.7,-116.7,-116.7,-116.6,-116.6,-116.6,-116.5,-116.5,-116.5,-116.5,-116.5,-116.5,-116.5,-116.5,-116.4,-116.4,-116.4,-116.4,-116.4,-116.4,-116.4,-116.4,-116.4,-116.4,-116.4,-116.3,-116.3,-116.3,-116.3,-116.3,-116.3,-116.2,-116.2,-116.2,-116.2,-116.2,-116.1,-116.1,-116.1,-116.1,-116.1,-116.1,-116.1,-116.0,-116.0,-116.0,-116.0,-116.0,-116.0,-116.0,-115.9,-115.9,-115.9,-115.9,-115.9,-115.9,-115.8,-115.8,-115.8,-115.8,-115.8,-115.7,-115.7,-115.7,-115.7,-115.7,-115.7,-115.7,-115.6,-115.6,-115.6,-115.6,-115.6,-115.6,-115.5,-115.5,-115.5,-115.5,-115.5,-115.5,-115.5,-115.4,-115.4,-115.4,-115.3,-115.3,-115.3,-115.3,-115.2,-115.2,-115.2,-115.1,-115.1,-115.1,-115.1,-115.1,-115.1,-115.0,-115.0,-115.0,-114.9,-114.9,-114.9,-114.8,-114.8,-114.8,-114.7,-114.7,-114.7,-114.6,-114.6,-114.6,-114.6,-114.6,-114.5,-114.5,-114.5,-114.5,-114.5,-114.5,-114.5,-114.4,-114.4,-114.4,-114.4,-114.4,-114.4,-114.4,-114.4,-114.3,-114.3,-114.3,-114.3,-114.3,-114.3,-114.3,-114.3,-114.3,-114.3,-114.3,-114.2,-114.2,-114.2,-114.2,-114.2,-114.2,-114.2,-114.2,-114.2,-114.2,-114.1,-114.1,-114.1,-114.1,-114.1,-114.1,-114.1,-114.0,-114.0,-114.0,-114.0,-114.0,-114.0,-113.9,-113.8,-113.7,-113.7,-113.6,-113.6,-113.6,-113.5,-113.5,-113.5,-113.5,-113.4,-113.4,-113.3,-113.3,-113.2,-113.1,-113.1,-113.0,-112.9,-112.8,-112.7,-112.6,-112.6,-112.6,-112.5,-112.4,-112.3,-112.2,-112.1,-112.1,-112.0,-112.0,-112.0,-112.0,-111.9,-111.9,-111.9,-111.8,-111.8,-111.8,-111.8,-111.7,-111.7,-111.7,-111.7,-111.6,-111.6,-111.6,-111.6,-111.6,-111.6,-111.5,-111.5,-111.5,-111.5,-111.5,-111.4,-111.4,-111.4,-111.3,-111.3,-111.3,-111.3,-111.3,-111.3,-111.2,-111.2,-111.2,-111.2,-111.2,-111.1,-111.1,-111.1,-111.1,-111.1,-111.0,-110.9,-110.8&start_date=2016-01-01&end_date=2022-04-06&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,precipitation,rain,snowfall,weathercode,surface_pressure,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,windspeed_100m,winddirection_10m,winddirection_100m,windgusts_10m,soil_temperature_0_to_7cm,soil_temperature_7_to_28cm,soil_moisture_0_to_7cm,soil_moisture_7_to_28cm&timezone=auto&format=csv\n" | |
] | |
} | |
], | |
"source": [ | |
"# Format the api string which is in format https://archive-api.open-meteo.com/v1/archive?latitude=lat1,lat2,lat,...&longitude=lon1,lon2,lon3,...\n", | |
"# Where lat1 = cells_list[0][1], lon1 = cells_list[0][0] etc.\n", | |
"latitudes = [str(cell[1]) for cell in cells_list]\n", | |
"longitudes = [str(cell[0]) for cell in cells_list]\n", | |
"latitudes_str = \",\".join(latitudes)\n", | |
"longitudes_str = \",\".join(longitudes)\n", | |
"api_string = f\"https://archive-api.open-meteo.com/v1/archive?latitude={latitudes_str}&longitude={longitudes_str}&start_date={start_date}&end_date={end_date}&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,precipitation,rain,snowfall,weathercode,surface_pressure,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,windspeed_100m,winddirection_10m,winddirection_100m,windgusts_10m,soil_temperature_0_to_7cm,soil_temperature_7_to_28cm,soil_moisture_0_to_7cm,soil_moisture_7_to_28cm&timezone=auto&format=csv\"\n", | |
"print(api_string)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 29, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Idx: 0, URL: https://archive-api.open-meteo.com/v1/archive?latitude=42.7,42.8,42.9,42.4,42.5,42.6,42.7,42.9,43.0,43.1,43.1,48.1,43.1,43.2,43.3,43.4,43.5,43.6,43.7,48.1,43.1,43.2,43.4,43.7,48.1,43.2,44.0,48.1,44.0,45.2,47.0,48.1,44.0,45.1,45.2,45.3,45.4,45.5,46.2,46.4,46.9,47.0,48.1,44.0,45.1&longitude=-124.5,-124.5,-124.5,-124.4,-124.4,-124.4,-124.4,-124.4,-124.4,-124.4,-124.3,-124.3,-124.2,-124.2,-124.2,-124.2,-124.2,-124.2,-124.2,-124.2,-124.1,-124.1,-124.1,-124.1,-124.1,-124.0,-124.0,-124.0,-123.9,-123.9,-123.9,-123.9,-123.8,-123.8,-123.8,-123.8,-123.8,-123.8,-123.8,-123.8,-123.8,-123.8,-123.8,-123.7,-123.7&start_date=2016-01-01&end_date=2022-04-06&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,precipitation,rain,snowfall,weathercode,surface_pressure,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,windspeed_100m,winddirection_10m,winddirection_100m,windgusts_10m,soil_temperature_0_to_7cm,soil_temperature_7_to_28cm,soil_moisture_0_to_7cm,soil_moisture_7_to_28cm&timezone=auto&format=csv\n", | |
"Idx: 1, URL: https://archive-api.open-meteo.com/v1/archive?latitude=45.1,45.4,45.5,46.2,46.4,46.7,46.9,47.0,48.1,44.0,44.6,45.4,45.5,45.6,46.2,46.3,46.4,46.5,46.6,46.7,46.9,47.0,48.1,44.0,44.6,45.4,45.6,46.2,46.3,46.5,46.6,47.0,48.1,44.0,44.6,45.3,45.4,45.6,46.1,46.2,46.3,46.5,46.6,47.0,48.1&longitude=-123.7,-123.7,-123.7,-123.7,-123.7,-123.7,-123.7,-123.7,-123.7,-123.6,-123.6,-123.6,-123.6,-123.6,-123.6,-123.6,-123.6,-123.6,-123.6,-123.6,-123.6,-123.6,-123.6,-123.5,-123.5,-123.5,-123.5,-123.5,-123.5,-123.5,-123.5,-123.5,-123.5,-123.4,-123.4,-123.4,-123.4,-123.4,-123.4,-123.4,-123.4,-123.4,-123.4,-123.4,-123.4&start_date=2016-01-01&end_date=2022-04-06&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,precipitation,rain,snowfall,weathercode,surface_pressure,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,windspeed_100m,winddirection_10m,winddirection_100m,windgusts_10m,soil_temperature_0_to_7cm,soil_temperature_7_to_28cm,soil_moisture_0_to_7cm,soil_moisture_7_to_28cm&timezone=auto&format=csv\n", | |
"Idx: 2, URL: https://archive-api.open-meteo.com/v1/archive?latitude=48.1,44.0,44.6,45.3,45.6,45.7,45.8,46.1,46.6,47.0,48.1,44.0,44.1,44.2,44.3,44.4,44.5,44.6,44.7,44.8,44.9,45.3,45.6,46.1,46.6,47.0,47.3,47.4,48.0,48.1,43.7,43.8,44.0,44.1,44.6,44.7,44.8,44.9,45.5,45.6,46.1,46.6,47.0,47.1,47.2&longitude=-123.4,-123.3,-123.3,-123.3,-123.3,-123.3,-123.3,-123.3,-123.3,-123.3,-123.3,-123.2,-123.2,-123.2,-123.2,-123.2,-123.2,-123.2,-123.2,-123.2,-123.2,-123.2,-123.2,-123.2,-123.2,-123.2,-123.2,-123.2,-123.2,-123.2,-123.1,-123.1,-123.1,-123.1,-123.1,-123.1,-123.1,-123.1,-123.1,-123.1,-123.1,-123.1,-123.1,-123.1,-123.1&start_date=2016-01-01&end_date=2022-04-06&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,precipitation,rain,snowfall,weathercode,surface_pressure,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,windspeed_100m,winddirection_10m,winddirection_100m,windgusts_10m,soil_temperature_0_to_7cm,soil_temperature_7_to_28cm,soil_moisture_0_to_7cm,soil_moisture_7_to_28cm&timezone=auto&format=csv\n", | |
"Idx: 3, URL: https://archive-api.open-meteo.com/v1/archive?latitude=47.2,47.3,47.4,47.5,47.6,48.0,43.8,44.0,44.6,45.0,45.1,46.1,46.2,46.3,46.4,46.5,46.6,46.9,47.0,47.3,47.6,47.7,48.0,44.6,45.1,45.2,46.1,46.2,46.6,46.8,46.9,47.0,47.3,47.4,47.7,47.8,47.9,48.0,48.5,43.9,44.6,44.7,45.2,45.3,45.4&longitude=-123.1,-123.1,-123.1,-123.1,-123.1,-123.1,-123.0,-123.0,-123.0,-123.0,-123.0,-123.0,-123.0,-123.0,-123.0,-123.0,-123.0,-123.0,-123.0,-123.0,-123.0,-123.0,-123.0,-122.9,-122.9,-122.9,-122.9,-122.9,-122.9,-122.9,-122.9,-122.9,-122.9,-122.9,-122.9,-122.9,-122.9,-122.9,-122.9,-122.8,-122.8,-122.8,-122.8,-122.8,-122.8&start_date=2016-01-01&end_date=2022-04-06&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,precipitation,rain,snowfall,weathercode,surface_pressure,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,windspeed_100m,winddirection_10m,winddirection_100m,windgusts_10m,soil_temperature_0_to_7cm,soil_temperature_7_to_28cm,soil_moisture_0_to_7cm,soil_moisture_7_to_28cm&timezone=auto&format=csv\n", | |
"Idx: 4, URL: https://archive-api.open-meteo.com/v1/archive?latitude=45.4,46.1,46.6,47.0,47.4,47.5,48.5,43.9,44.7,44.8,45.3,45.7,45.9,46.0,46.1,46.6,47.0,47.5,48.5,43.8,43.9,44.8,45.3,45.7,45.8,45.9,46.5,46.6,47.0,48.9,43.7,43.8,44.7,44.8,45.3,45.6,45.7,47.0,48.8,48.9,43.7,44.7,44.8,44.9,45.3&longitude=-122.8,-122.8,-122.8,-122.8,-122.8,-122.8,-122.8,-122.7,-122.7,-122.7,-122.7,-122.7,-122.7,-122.7,-122.7,-122.7,-122.7,-122.7,-122.7,-122.6,-122.6,-122.6,-122.6,-122.6,-122.6,-122.6,-122.6,-122.6,-122.6,-122.6,-122.5,-122.5,-122.5,-122.5,-122.5,-122.5,-122.5,-122.5,-122.5,-122.5,-122.4,-122.4,-122.4,-122.4,-122.4&start_date=2016-01-01&end_date=2022-04-06&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,precipitation,rain,snowfall,weathercode,surface_pressure,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,windspeed_100m,winddirection_10m,winddirection_100m,windgusts_10m,soil_temperature_0_to_7cm,soil_temperature_7_to_28cm,soil_moisture_0_to_7cm,soil_moisture_7_to_28cm&timezone=auto&format=csv\n", | |
"Idx: 5, URL: https://archive-api.open-meteo.com/v1/archive?latitude=45.3,45.4,45.5,45.6,45.7,47.0,47.1,48.8,44.7,44.8,44.9,45.0,45.4,45.5,45.6,45.7,46.9,47.0,47.1,47.2,48.7,48.8,44.7,45.0,45.4,45.5,45.6,45.7,47.0,47.1,47.2,47.5,47.8,48.3,48.4,48.5,48.6,48.7,44.7,44.8,45.0,45.4,45.5,45.6,45.7&longitude=-122.4,-122.4,-122.4,-122.4,-122.4,-122.4,-122.4,-122.4,-122.3,-122.3,-122.3,-122.3,-122.3,-122.3,-122.3,-122.3,-122.3,-122.3,-122.3,-122.3,-122.3,-122.3,-122.2,-122.2,-122.2,-122.2,-122.2,-122.2,-122.2,-122.2,-122.2,-122.2,-122.2,-122.2,-122.2,-122.2,-122.2,-122.2,-122.1,-122.1,-122.1,-122.1,-122.1,-122.1,-122.1&start_date=2016-01-01&end_date=2022-04-06&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,precipitation,rain,snowfall,weathercode,surface_pressure,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,windspeed_100m,winddirection_10m,winddirection_100m,windgusts_10m,soil_temperature_0_to_7cm,soil_temperature_7_to_28cm,soil_moisture_0_to_7cm,soil_moisture_7_to_28cm&timezone=auto&format=csv\n", | |
"Idx: 6, URL: https://archive-api.open-meteo.com/v1/archive?latitude=45.7,47.1,47.5,47.9,48.1,48.2,48.3,44.8,45.0,45.4,45.5,45.6,45.7,47.1,47.4,47.5,47.6,47.7,47.9,48.0,48.1,44.8,45.0,45.4,45.6,45.7,47.1,47.2,47.3,47.4,47.5,47.7,47.8,47.9,44.8,45.0,45.4,45.5,45.7,45.8,47.2,47.3,47.4,47.5,47.9&longitude=-122.1,-122.1,-122.1,-122.1,-122.1,-122.1,-122.1,-122.0,-122.0,-122.0,-122.0,-122.0,-122.0,-122.0,-122.0,-122.0,-122.0,-122.0,-122.0,-122.0,-122.0,-121.9,-121.9,-121.9,-121.9,-121.9,-121.9,-121.9,-121.9,-121.9,-121.9,-121.9,-121.9,-121.9,-121.8,-121.8,-121.8,-121.8,-121.8,-121.8,-121.8,-121.8,-121.8,-121.8,-121.8&start_date=2016-01-01&end_date=2022-04-06&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,precipitation,rain,snowfall,weathercode,surface_pressure,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,windspeed_100m,winddirection_10m,winddirection_100m,windgusts_10m,soil_temperature_0_to_7cm,soil_temperature_7_to_28cm,soil_moisture_0_to_7cm,soil_moisture_7_to_28cm&timezone=auto&format=csv\n", | |
"Idx: 7, URL: https://archive-api.open-meteo.com/v1/archive?latitude=47.9,44.8,44.9,45.0,45.1,45.5,45.7,45.8,47.2,47.3,47.4,47.5,47.9,44.9,45.1,45.5,45.7,45.8,47.2,47.4,47.8,47.9,43.6,43.7,44.9,45.1,45.5,45.7,45.8,47.2,47.4,47.8,42.0,42.1,43.5,43.6,44.9,45.0,45.1,45.5,45.6,45.7,45.8,47.2,47.3&longitude=-121.8,-121.7,-121.7,-121.7,-121.7,-121.7,-121.7,-121.7,-121.7,-121.7,-121.7,-121.7,-121.7,-121.6,-121.6,-121.6,-121.6,-121.6,-121.6,-121.6,-121.6,-121.6,-121.5,-121.5,-121.5,-121.5,-121.5,-121.5,-121.5,-121.5,-121.5,-121.5,-121.4,-121.4,-121.4,-121.4,-121.4,-121.4,-121.4,-121.4,-121.4,-121.4,-121.4,-121.4,-121.4&start_date=2016-01-01&end_date=2022-04-06&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,precipitation,rain,snowfall,weathercode,surface_pressure,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,windspeed_100m,winddirection_10m,winddirection_100m,windgusts_10m,soil_temperature_0_to_7cm,soil_temperature_7_to_28cm,soil_moisture_0_to_7cm,soil_moisture_7_to_28cm&timezone=auto&format=csv\n", | |
"Idx: 8, URL: https://archive-api.open-meteo.com/v1/archive?latitude=47.3,47.4,47.7,42.0,43.4,43.5,45.0,45.1,45.2,45.5,45.6,45.7,45.8,47.3,47.7,43.4,45.1,45.2,45.6,45.7,45.8,47.2,47.3,47.7,43.3,43.4,45.1,45.2,45.3,45.6,45.7,45.8,47.2,47.7,43.0,43.1,43.3,44.3,44.4,44.5,44.6,44.7,45.2,45.3,45.4&longitude=-121.4,-121.4,-121.4,-121.3,-121.3,-121.3,-121.3,-121.3,-121.3,-121.3,-121.3,-121.3,-121.3,-121.3,-121.3,-121.2,-121.2,-121.2,-121.2,-121.2,-121.2,-121.2,-121.2,-121.2,-121.1,-121.1,-121.1,-121.1,-121.1,-121.1,-121.1,-121.1,-121.1,-121.1,-121.0,-121.0,-121.0,-121.0,-121.0,-121.0,-121.0,-121.0,-121.0,-121.0,-121.0&start_date=2016-01-01&end_date=2022-04-06&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,precipitation,rain,snowfall,weathercode,surface_pressure,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,windspeed_100m,winddirection_10m,winddirection_100m,windgusts_10m,soil_temperature_0_to_7cm,soil_temperature_7_to_28cm,soil_moisture_0_to_7cm,soil_moisture_7_to_28cm&timezone=auto&format=csv\n", | |
"Idx: 9, URL: https://archive-api.open-meteo.com/v1/archive?latitude=45.4,45.6,45.7,45.8,45.9,47.2,47.7,47.8,43.1,43.2,43.3,43.4,43.5,43.6,43.7,43.8,43.9,44.0,44.1,44.2,44.3,44.8,44.9,45.0,45.1,45.2,45.3,45.4,45.5,45.6,45.7,45.8,45.9,47.2,47.8,43.4,43.8,45.3,45.4,45.5,45.6,45.7,45.8,47.1,47.2&longitude=-121.0,-121.0,-121.0,-121.0,-121.0,-121.0,-121.0,-121.0,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.9,-120.8,-120.8,-120.8,-120.8,-120.8,-120.8,-120.8,-120.8,-120.8,-120.8&start_date=2016-01-01&end_date=2022-04-06&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,precipitation,rain,snowfall,weathercode,surface_pressure,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,windspeed_100m,winddirection_10m,winddirection_100m,windgusts_10m,soil_temperature_0_to_7cm,soil_temperature_7_to_28cm,soil_moisture_0_to_7cm,soil_moisture_7_to_28cm&timezone=auto&format=csv\n", | |
"Idx: 10, URL: https://archive-api.open-meteo.com/v1/archive?latitude=47.2,47.8,45.3,45.4,45.5,45.7,47.1,47.2,47.7,47.8,45.4,45.5,45.7,45.8,46.8,46.9,47.0,47.1,47.2,47.7,45.4,45.5,45.7,45.8,45.9,46.7,46.8,47.1,47.7,41.7,45.4,45.5,45.6,45.7,45.9,46.0,46.6,46.7,47.1,47.2,47.7,45.2,45.3,45.4,45.6&longitude=-120.8,-120.8,-120.7,-120.7,-120.7,-120.7,-120.7,-120.7,-120.7,-120.7,-120.6,-120.6,-120.6,-120.6,-120.6,-120.6,-120.6,-120.6,-120.6,-120.6,-120.5,-120.5,-120.5,-120.5,-120.5,-120.5,-120.5,-120.5,-120.5,-120.4,-120.4,-120.4,-120.4,-120.4,-120.4,-120.4,-120.4,-120.4,-120.4,-120.4,-120.4,-120.3,-120.3,-120.3,-120.3&start_date=2016-01-01&end_date=2022-04-06&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,precipitation,rain,snowfall,weathercode,surface_pressure,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,windspeed_100m,winddirection_10m,winddirection_100m,windgusts_10m,soil_temperature_0_to_7cm,soil_temperature_7_to_28cm,soil_moisture_0_to_7cm,soil_moisture_7_to_28cm&timezone=auto&format=csv\n", | |
"Idx: 11, URL: https://archive-api.open-meteo.com/v1/archive?latitude=45.6,45.7,46.0,46.1,46.5,46.6,47.0,47.1,47.2,47.3,47.5,47.7,45.0,45.1,45.2,45.7,45.8,46.1,46.5,46.9,47.0,47.2,47.3,47.4,47.5,47.7,45.7,45.8,46.1,46.5,46.9,47.3,47.7,45.7,45.8,46.1,46.2,46.3,46.5,46.9,47.3,47.7,47.8,45.8,45.9&longitude=-120.3,-120.3,-120.3,-120.3,-120.3,-120.3,-120.3,-120.3,-120.3,-120.3,-120.3,-120.3,-120.2,-120.2,-120.2,-120.2,-120.2,-120.2,-120.2,-120.2,-120.2,-120.2,-120.2,-120.2,-120.2,-120.2,-120.1,-120.1,-120.1,-120.1,-120.1,-120.1,-120.1,-120.0,-120.0,-120.0,-120.0,-120.0,-120.0,-120.0,-120.0,-120.0,-120.0,-119.9,-119.9&start_date=2016-01-01&end_date=2022-04-06&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,precipitation,rain,snowfall,weathercode,surface_pressure,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,windspeed_100m,winddirection_10m,winddirection_100m,windgusts_10m,soil_temperature_0_to_7cm,soil_temperature_7_to_28cm,soil_moisture_0_to_7cm,soil_moisture_7_to_28cm&timezone=auto&format=csv\n", | |
"Idx: 12, URL: https://archive-api.open-meteo.com/v1/archive?latitude=45.9,46.3,46.4,46.5,46.7,46.8,46.9,47.3,47.8,45.8,45.9,46.2,46.3,46.5,46.6,46.7,46.8,47.4,47.8,47.9,45.5,45.6,45.8,45.9,46.0,46.3,46.6,46.8,46.9,47.0,47.4,47.5,47.9,48.0,45.6,45.7,45.8,45.9,46.0,46.1,46.2,46.3,46.6,46.7,46.8&longitude=-119.9,-119.9,-119.9,-119.9,-119.9,-119.9,-119.9,-119.9,-119.9,-119.8,-119.8,-119.8,-119.8,-119.8,-119.8,-119.8,-119.8,-119.8,-119.8,-119.8,-119.7,-119.7,-119.7,-119.7,-119.7,-119.7,-119.7,-119.7,-119.7,-119.7,-119.7,-119.7,-119.7,-119.7,-119.6,-119.6,-119.6,-119.6,-119.6,-119.6,-119.6,-119.6,-119.6,-119.6,-119.6&start_date=2016-01-01&end_date=2022-04-06&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,precipitation,rain,snowfall,weathercode,surface_pressure,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,windspeed_100m,winddirection_10m,winddirection_100m,windgusts_10m,soil_temperature_0_to_7cm,soil_temperature_7_to_28cm,soil_moisture_0_to_7cm,soil_moisture_7_to_28cm&timezone=auto&format=csv\n", | |
"Idx: 13, URL: https://archive-api.open-meteo.com/v1/archive?latitude=46.8,46.9,47.0,47.1,47.5,48.0,45.9,46.3,46.4,46.6,46.7,47.1,47.2,47.3,47.5,47.6,48.0,45.9,46.3,46.4,46.5,46.6,46.7,47.3,47.4,47.6,47.7,48.0,45.8,45.9,46.0,46.2,46.4,46.5,46.7,47.4,47.5,47.7,47.8,48.0,45.7,45.8,45.9,46.0,46.1&longitude=-119.6,-119.6,-119.6,-119.6,-119.6,-119.6,-119.5,-119.5,-119.5,-119.5,-119.5,-119.5,-119.5,-119.5,-119.5,-119.5,-119.5,-119.4,-119.4,-119.4,-119.4,-119.4,-119.4,-119.4,-119.4,-119.4,-119.4,-119.4,-119.3,-119.3,-119.3,-119.3,-119.3,-119.3,-119.3,-119.3,-119.3,-119.3,-119.3,-119.3,-119.2,-119.2,-119.2,-119.2,-119.2&start_date=2016-01-01&end_date=2022-04-06&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,precipitation,rain,snowfall,weathercode,surface_pressure,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,windspeed_100m,winddirection_10m,winddirection_100m,windgusts_10m,soil_temperature_0_to_7cm,soil_temperature_7_to_28cm,soil_moisture_0_to_7cm,soil_moisture_7_to_28cm&timezone=auto&format=csv\n", | |
"Idx: 14, URL: https://archive-api.open-meteo.com/v1/archive?latitude=46.1,46.2,46.4,46.5,46.7,47.5,47.6,47.7,47.8,47.9,48.0,45.7,45.9,46.1,46.2,46.3,46.4,46.5,46.6,46.7,47.7,47.8,47.9,48.0,45.6,45.7,45.9,46.0,46.2,46.3,46.5,46.6,46.7,47.8,47.9,48.0,45.6,46.0,46.1,46.2,46.3,46.6,47.9,45.6,45.7&longitude=-119.2,-119.2,-119.2,-119.2,-119.2,-119.2,-119.2,-119.2,-119.2,-119.2,-119.2,-119.1,-119.1,-119.1,-119.1,-119.1,-119.1,-119.1,-119.1,-119.1,-119.1,-119.1,-119.1,-119.1,-119.0,-119.0,-119.0,-119.0,-119.0,-119.0,-119.0,-119.0,-119.0,-119.0,-119.0,-119.0,-118.9,-118.9,-118.9,-118.9,-118.9,-118.9,-118.9,-118.8,-118.8&start_date=2016-01-01&end_date=2022-04-06&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,precipitation,rain,snowfall,weathercode,surface_pressure,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,windspeed_100m,winddirection_10m,winddirection_100m,windgusts_10m,soil_temperature_0_to_7cm,soil_temperature_7_to_28cm,soil_moisture_0_to_7cm,soil_moisture_7_to_28cm&timezone=auto&format=csv\n", | |
"Idx: 15, URL: https://archive-api.open-meteo.com/v1/archive?latitude=45.7,46.1,46.2,46.3,46.6,47.9,45.6,45.7,45.8,46.1,46.3,46.4,46.6,47.6,47.7,47.8,47.9,45.6,45.8,45.9,46.1,46.4,46.5,46.6,47.8,45.5,45.6,45.9,46.0,46.1,46.5,46.6,47.8,45.4,45.5,46.0,46.1,47.7,47.8,45.3,45.4,47.7,45.3,47.7,45.3&longitude=-118.8,-118.8,-118.8,-118.8,-118.8,-118.8,-118.7,-118.7,-118.7,-118.7,-118.7,-118.7,-118.7,-118.7,-118.7,-118.7,-118.7,-118.6,-118.6,-118.6,-118.6,-118.6,-118.6,-118.6,-118.6,-118.5,-118.5,-118.5,-118.5,-118.5,-118.5,-118.5,-118.5,-118.4,-118.4,-118.4,-118.4,-118.4,-118.4,-118.3,-118.3,-118.3,-118.2,-118.2,-118.1&start_date=2016-01-01&end_date=2022-04-06&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,precipitation,rain,snowfall,weathercode,surface_pressure,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,windspeed_100m,winddirection_10m,winddirection_100m,windgusts_10m,soil_temperature_0_to_7cm,soil_temperature_7_to_28cm,soil_moisture_0_to_7cm,soil_moisture_7_to_28cm&timezone=auto&format=csv\n", | |
"Idx: 16, URL: https://archive-api.open-meteo.com/v1/archive?latitude=45.3,47.7,47.7,47.7,48.4,48.5,48.6,47.7,48.3,48.4,48.6,48.7,46.4,47.7,48.1,48.2,48.3,48.7,48.8,46.4,47.7,48.0,48.1,48.7,48.8,46.4,47.7,47.8,47.9,48.0,48.7,48.8,46.4,46.6,46.7,47.7,47.8,47.9,48.3,48.4,48.5,48.6,48.7,48.8,48.9&longitude=-118.1,-118.1,-118.0,-117.9,-117.9,-117.9,-117.9,-117.8,-117.8,-117.8,-117.8,-117.8,-117.7,-117.7,-117.7,-117.7,-117.7,-117.7,-117.7,-117.6,-117.6,-117.6,-117.6,-117.6,-117.6,-117.5,-117.5,-117.5,-117.5,-117.5,-117.5,-117.5,-117.4,-117.4,-117.4,-117.4,-117.4,-117.4,-117.4,-117.4,-117.4,-117.4,-117.4,-117.4,-117.4&start_date=2016-01-01&end_date=2022-04-06&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,precipitation,rain,snowfall,weathercode,surface_pressure,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,windspeed_100m,winddirection_10m,winddirection_100m,windgusts_10m,soil_temperature_0_to_7cm,soil_temperature_7_to_28cm,soil_moisture_0_to_7cm,soil_moisture_7_to_28cm&timezone=auto&format=csv\n", | |
"Idx: 17, URL: https://archive-api.open-meteo.com/v1/archive?latitude=48.9,49.0,46.4,46.6,47.7,47.8,48.2,48.3,48.4,48.5,46.4,46.5,46.6,47.7,47.8,48.2,46.4,47.7,48.2,46.4,46.5,47.7,47.8,48.2,46.5,47.8,48.2,47.8,47.9,48.2,47.9,48.2,48.3,47.8,47.9,48.3,46.7,46.8,47.8,47.9,48.0,48.3,48.4,48.5,46.5&longitude=-117.4,-117.4,-117.3,-117.3,-117.3,-117.3,-117.3,-117.3,-117.3,-117.3,-117.2,-117.2,-117.2,-117.2,-117.2,-117.2,-117.1,-117.1,-117.1,-117.0,-117.0,-117.0,-117.0,-117.0,-116.9,-116.9,-116.9,-116.8,-116.8,-116.8,-116.7,-116.7,-116.7,-116.6,-116.6,-116.6,-116.5,-116.5,-116.5,-116.5,-116.5,-116.5,-116.5,-116.5,-116.4&start_date=2016-01-01&end_date=2022-04-06&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,precipitation,rain,snowfall,weathercode,surface_pressure,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,windspeed_100m,winddirection_10m,winddirection_100m,windgusts_10m,soil_temperature_0_to_7cm,soil_temperature_7_to_28cm,soil_moisture_0_to_7cm,soil_moisture_7_to_28cm&timezone=auto&format=csv\n", | |
"Idx: 18, URL: https://archive-api.open-meteo.com/v1/archive?latitude=46.5,46.6,46.7,46.8,46.9,47.7,47.8,48.0,48.1,48.5,48.6,46.9,47.0,47.7,48.1,48.6,48.7,47.0,47.1,47.7,48.1,48.7,47.1,47.2,47.6,47.7,48.1,48.6,48.7,47.2,47.3,47.6,48.0,48.1,48.5,48.6,47.3,47.4,47.5,48.0,48.4,48.5,47.4,47.5,48.0&longitude=-116.4,-116.4,-116.4,-116.4,-116.4,-116.4,-116.4,-116.4,-116.4,-116.4,-116.4,-116.3,-116.3,-116.3,-116.3,-116.3,-116.3,-116.2,-116.2,-116.2,-116.2,-116.2,-116.1,-116.1,-116.1,-116.1,-116.1,-116.1,-116.1,-116.0,-116.0,-116.0,-116.0,-116.0,-116.0,-116.0,-115.9,-115.9,-115.9,-115.9,-115.9,-115.9,-115.8,-115.8,-115.8&start_date=2016-01-01&end_date=2022-04-06&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,precipitation,rain,snowfall,weathercode,surface_pressure,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,windspeed_100m,winddirection_10m,winddirection_100m,windgusts_10m,soil_temperature_0_to_7cm,soil_temperature_7_to_28cm,soil_moisture_0_to_7cm,soil_moisture_7_to_28cm&timezone=auto&format=csv\n", | |
"Idx: 19, URL: https://archive-api.open-meteo.com/v1/archive?latitude=48.0,48.4,48.5,43.2,47.4,47.5,47.9,48.0,48.4,48.5,43.2,47.4,47.5,47.9,48.0,48.4,43.3,43.4,47.4,47.5,47.9,48.0,48.4,47.4,48.0,48.4,47.4,48.0,48.1,48.4,47.4,48.1,48.4,47.3,47.4,48.1,48.2,48.3,48.4,47.3,48.2,48.3,47.2,47.3,48.7&longitude=-115.8,-115.8,-115.8,-115.7,-115.7,-115.7,-115.7,-115.7,-115.7,-115.7,-115.6,-115.6,-115.6,-115.6,-115.6,-115.6,-115.5,-115.5,-115.5,-115.5,-115.5,-115.5,-115.5,-115.4,-115.4,-115.4,-115.3,-115.3,-115.3,-115.3,-115.2,-115.2,-115.2,-115.1,-115.1,-115.1,-115.1,-115.1,-115.1,-115.0,-115.0,-115.0,-114.9,-114.9,-114.9&start_date=2016-01-01&end_date=2022-04-06&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,precipitation,rain,snowfall,weathercode,surface_pressure,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,windspeed_100m,winddirection_10m,winddirection_100m,windgusts_10m,soil_temperature_0_to_7cm,soil_temperature_7_to_28cm,soil_moisture_0_to_7cm,soil_moisture_7_to_28cm&timezone=auto&format=csv\n", | |
"Idx: 20, URL: https://archive-api.open-meteo.com/v1/archive?latitude=48.7,47.2,48.6,48.7,47.1,47.2,48.6,47.1,47.5,47.6,48.5,48.6,47.0,47.1,47.5,47.6,47.7,48.4,48.5,47.0,47.4,47.5,47.7,47.8,47.9,48.2,48.4,46.9,47.0,47.3,47.4,47.7,47.8,47.9,48.0,48.1,48.2,48.4,46.8,46.9,47.2,47.3,47.7,48.0,48.1&longitude=-114.9,-114.8,-114.8,-114.8,-114.7,-114.7,-114.7,-114.6,-114.6,-114.6,-114.6,-114.6,-114.5,-114.5,-114.5,-114.5,-114.5,-114.5,-114.5,-114.4,-114.4,-114.4,-114.4,-114.4,-114.4,-114.4,-114.4,-114.3,-114.3,-114.3,-114.3,-114.3,-114.3,-114.3,-114.3,-114.3,-114.3,-114.3,-114.2,-114.2,-114.2,-114.2,-114.2,-114.2,-114.2&start_date=2016-01-01&end_date=2022-04-06&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,precipitation,rain,snowfall,weathercode,surface_pressure,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,windspeed_100m,winddirection_10m,winddirection_100m,windgusts_10m,soil_temperature_0_to_7cm,soil_temperature_7_to_28cm,soil_moisture_0_to_7cm,soil_moisture_7_to_28cm&timezone=auto&format=csv\n", | |
"Idx: 21, URL: https://archive-api.open-meteo.com/v1/archive?latitude=48.1,48.2,48.3,48.4,44.4,46.8,47.0,47.1,47.2,48.3,48.4,44.3,44.4,46.7,46.8,46.9,47.0,46.7,46.7,42.5,46.7,42.5,46.6,46.7,42.5,42.6,42.7,46.6,46.5,46.6,46.4,46.5,46.4,46.4,46.5,46.5,46.5,46.5,46.5,46.3,46.4,46.5,46.3,46.3,46.3&longitude=-114.2,-114.2,-114.2,-114.2,-114.1,-114.1,-114.1,-114.1,-114.1,-114.1,-114.1,-114.0,-114.0,-114.0,-114.0,-114.0,-114.0,-113.9,-113.8,-113.7,-113.7,-113.6,-113.6,-113.6,-113.5,-113.5,-113.5,-113.5,-113.4,-113.4,-113.3,-113.3,-113.2,-113.1,-113.1,-113.0,-112.9,-112.8,-112.7,-112.6,-112.6,-112.6,-112.5,-112.4,-112.3&start_date=2016-01-01&end_date=2022-04-06&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,precipitation,rain,snowfall,weathercode,surface_pressure,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,windspeed_100m,winddirection_10m,winddirection_100m,windgusts_10m,soil_temperature_0_to_7cm,soil_temperature_7_to_28cm,soil_moisture_0_to_7cm,soil_moisture_7_to_28cm&timezone=auto&format=csv\n", | |
"Idx: 22, URL: https://archive-api.open-meteo.com/v1/archive?latitude=46.3,46.3,43.3,46.3,43.3,43.4,46.2,46.3,43.4,43.5,46.2,43.5,43.6,43.7,46.2,43.5,43.6,43.7,46.2,43.5,43.6,43.7,43.8,43.9,46.2,43.5,43.8,43.9,46.2,46.3,43.5,43.9,44.0,43.5,43.6,43.8,43.9,44.0,44.5,43.6,43.7,43.8,44.5,44.6,43.5&longitude=-112.3,-112.2,-112.1,-112.1,-112.0,-112.0,-112.0,-112.0,-111.9,-111.9,-111.9,-111.8,-111.8,-111.8,-111.8,-111.7,-111.7,-111.7,-111.7,-111.6,-111.6,-111.6,-111.6,-111.6,-111.6,-111.5,-111.5,-111.5,-111.5,-111.5,-111.4,-111.4,-111.4,-111.3,-111.3,-111.3,-111.3,-111.3,-111.3,-111.2,-111.2,-111.2,-111.2,-111.2,-111.1&start_date=2016-01-01&end_date=2022-04-06&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,precipitation,rain,snowfall,weathercode,surface_pressure,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,windspeed_100m,winddirection_10m,winddirection_100m,windgusts_10m,soil_temperature_0_to_7cm,soil_temperature_7_to_28cm,soil_moisture_0_to_7cm,soil_moisture_7_to_28cm&timezone=auto&format=csv\n", | |
"Idx: 23, URL: https://archive-api.open-meteo.com/v1/archive?latitude=43.5,43.6,43.7,44.6,44.7,43.5,43.5,43.5&longitude=-111.1,-111.1,-111.1,-111.1,-111.1,-111.0,-110.9,-110.8&start_date=2016-01-01&end_date=2022-04-06&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,precipitation,rain,snowfall,weathercode,surface_pressure,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,windspeed_100m,winddirection_10m,winddirection_100m,windgusts_10m,soil_temperature_0_to_7cm,soil_temperature_7_to_28cm,soil_moisture_0_to_7cm,soil_moisture_7_to_28cm&timezone=auto&format=csv\n" | |
] | |
} | |
], | |
"source": [ | |
"def generate_api_strings(latitudes, longitudes, max_len=1000):\n", | |
" left_part = 'https://archive-api.open-meteo.com/v1/archive?latitude='\n", | |
" right_part = f\"&start_date={start_date}&end_date={end_date}&hourly=temperature_2m,relativehumidity_2m,dewpoint_2m,precipitation,rain,snowfall,weathercode,surface_pressure,cloudcover_low,cloudcover_mid,cloudcover_high,windspeed_10m,windspeed_100m,winddirection_10m,winddirection_100m,windgusts_10m,soil_temperature_0_to_7cm,soil_temperature_7_to_28cm,soil_moisture_0_to_7cm,soil_moisture_7_to_28cm&timezone=auto&format=csv\"\n", | |
" idx = 0\n", | |
" while idx < len(latitudes):\n", | |
" next_idx = idx\n", | |
" while next_idx < len(latitudes):\n", | |
" api_str = left_part + ','.join(latitudes[idx:next_idx+1]) + '&longitude=' + ','.join(longitudes[idx:next_idx+1]) + right_part\n", | |
" if len(api_str) > max_len:\n", | |
" break\n", | |
" next_idx += 1\n", | |
" yield api_str\n", | |
" idx = next_idx\n", | |
"\n", | |
"\n", | |
"for i, api_str in enumerate(generate_api_strings(latitudes, longitudes,1000)):\n", | |
" print(f\"Idx: {i}, URL: {api_str}\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 31, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Too many requests, waiting 1 second...\n", | |
"Error on idx=0. Code 429. Not Saving...\n", | |
"Too many requests, waiting 1 second...\n", | |
"Error on idx=1. Code 429. Not Saving...\n", | |
"Too many requests, waiting 1 second...\n", | |
"Error on idx=2. Code 429. Not Saving...\n", | |
"Too many requests, waiting 1 second...\n", | |
"Error on idx=3. Code 429. Not Saving...\n", | |
"Too many requests, waiting 1 second...\n" | |
] | |
}, | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"Exception ignored in: <finalize object at 0x7f4cbdb7da00; dead>\n", | |
"Traceback (most recent call last):\n", | |
" File \"/home/sharan/anaconda3/lib/python3.10/weakref.py\", line 591, in __call__\n", | |
" return info.func(*info.args, **(info.kwargs or {}))\n", | |
" File \"/home/sharan/anaconda3/lib/python3.10/site-packages/urllib3/connectionpool.py\", line 1129, in _close_pool_connections\n", | |
" if conn:\n", | |
"KeyboardInterrupt: \n" | |
] | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Error on idx=4. Code 429. Not Saving...\n", | |
"Too many requests, waiting 1 second...\n", | |
"Error on idx=5. Code 429. Not Saving...\n", | |
"Too many requests, waiting 1 second...\n", | |
"Error on idx=6. Code 429. Not Saving...\n", | |
"Too many requests, waiting 1 second...\n", | |
"Error on idx=7. Code 429. Not Saving...\n", | |
"Too many requests, waiting 1 second...\n", | |
"Error on idx=8. Code 429. Not Saving...\n", | |
"Too many requests, waiting 1 second...\n", | |
"Error on idx=9. Code 429. Not Saving...\n", | |
"Too many requests, waiting 1 second...\n", | |
"Error on idx=10. Code 429. Not Saving...\n", | |
"Too many requests, waiting 1 second...\n" | |
] | |
} | |
], | |
"source": [ | |
"for i, api_str in enumerate(generate_api_strings(latitudes, longitudes, 1000)):\n", | |
" # Check that if the file for this index already exists, if so, skip it. Use pathlib Path for this\n", | |
" # check if file all_cells_{i}.csv exists in save_path\n", | |
" save_path = Path(\"../Datasets/open-metro-cells/\")\n", | |
" if Path(save_path/f\"all_cells_{i}.csv\").is_file():\n", | |
" print(f\"File already exists for idx {i}. Not Saving.\")\n", | |
" continue\n", | |
" response = requests.get(api_str, headers = {'User-agent': 'Weather Batch Crawler 0.7'})\n", | |
"\n", | |
" if (response.status_code == 429): #Too many requests\n", | |
" print(\"Too many requests, waiting 1 second...\")\n", | |
" time.sleep(1)\n", | |
" response = requests.get(api_str)\n", | |
"\n", | |
" if(response.status_code != 200):\n", | |
" print(f\"Error on idx={i}. Code {response.status_code}. Not Saving...\")\n", | |
"\n", | |
" # Use pathlib for handling file paths\n", | |
" if (response.status_code == 200):\n", | |
" data = response.content\n", | |
" print(f\"Writing for Idx:{i}\")\n", | |
" output_file = Path(save_path/f'all_cells_{i}.csv')\n", | |
" output_file.write_bytes(data)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 26, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# The api string is too long. Split the lat, long string such that we can have multiple calls. The rest of the API call string should not be changed! \n" | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "base", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.10.8" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment