Skip to content

Commit 76f08fa

Browse files
committed
Data directory specified
1 parent 1c45c97 commit 76f08fa

13 files changed

Lines changed: 725 additions & 1638 deletions

openDataVisio/datadownload/retrieve-data.ipynb

Lines changed: 231 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
"metadata": {},
6060
"outputs": [],
6161
"source": [
62-
"# !pip3 install earthkit-data ecmwf-opendata"
62+
"# !pip3 install earthkit-data ecmwf-opendata requests datetime"
6363
]
6464
},
6565
{
@@ -460,16 +460,232 @@
460460
},
461461
{
462462
"cell_type": "code",
463-
"execution_count": 6,
463+
"execution_count": 3,
464464
"id": "33f92905-9ef8-4243-91ad-82cb6fb3c8ee",
465465
"metadata": {},
466466
"outputs": [
467467
{
468468
"name": "stdout",
469469
"output_type": "stream",
470470
"text": [
471-
"The 20250608000000-6h-oper-fc.grib2 file downloaded in 8 seconds.\n"
471+
"The 20250827000000-6h-oper-fc.grib2 file downloaded in 7 seconds.\n"
472472
]
473+
},
474+
{
475+
"data": {
476+
"text/html": [
477+
"<div>\n",
478+
"<style scoped>\n",
479+
" .dataframe tbody tr th:only-of-type {\n",
480+
" vertical-align: middle;\n",
481+
" }\n",
482+
"\n",
483+
" .dataframe tbody tr th {\n",
484+
" vertical-align: top;\n",
485+
" }\n",
486+
"\n",
487+
" .dataframe thead th {\n",
488+
" text-align: right;\n",
489+
" }\n",
490+
"</style>\n",
491+
"<table border=\"1\" class=\"dataframe\">\n",
492+
" <thead>\n",
493+
" <tr style=\"text-align: right;\">\n",
494+
" <th></th>\n",
495+
" <th>centre</th>\n",
496+
" <th>shortName</th>\n",
497+
" <th>typeOfLevel</th>\n",
498+
" <th>level</th>\n",
499+
" <th>dataDate</th>\n",
500+
" <th>dataTime</th>\n",
501+
" <th>stepRange</th>\n",
502+
" <th>dataType</th>\n",
503+
" <th>number</th>\n",
504+
" <th>gridType</th>\n",
505+
" </tr>\n",
506+
" </thead>\n",
507+
" <tbody>\n",
508+
" <tr>\n",
509+
" <th>0</th>\n",
510+
" <td>ecmf</td>\n",
511+
" <td>mcc</td>\n",
512+
" <td>mediumCloudLayer</td>\n",
513+
" <td>800</td>\n",
514+
" <td>20250827</td>\n",
515+
" <td>0</td>\n",
516+
" <td>6</td>\n",
517+
" <td>fc</td>\n",
518+
" <td>None</td>\n",
519+
" <td>regular_ll</td>\n",
520+
" </tr>\n",
521+
" <tr>\n",
522+
" <th>1</th>\n",
523+
" <td>ecmf</td>\n",
524+
" <td>vsw</td>\n",
525+
" <td>soilLayer</td>\n",
526+
" <td>1</td>\n",
527+
" <td>20250827</td>\n",
528+
" <td>0</td>\n",
529+
" <td>6</td>\n",
530+
" <td>fc</td>\n",
531+
" <td>None</td>\n",
532+
" <td>regular_ll</td>\n",
533+
" </tr>\n",
534+
" <tr>\n",
535+
" <th>2</th>\n",
536+
" <td>ecmf</td>\n",
537+
" <td>vsw</td>\n",
538+
" <td>soilLayer</td>\n",
539+
" <td>2</td>\n",
540+
" <td>20250827</td>\n",
541+
" <td>0</td>\n",
542+
" <td>6</td>\n",
543+
" <td>fc</td>\n",
544+
" <td>None</td>\n",
545+
" <td>regular_ll</td>\n",
546+
" </tr>\n",
547+
" <tr>\n",
548+
" <th>3</th>\n",
549+
" <td>ecmf</td>\n",
550+
" <td>z</td>\n",
551+
" <td>isobaricInhPa</td>\n",
552+
" <td>400</td>\n",
553+
" <td>20250827</td>\n",
554+
" <td>0</td>\n",
555+
" <td>6</td>\n",
556+
" <td>fc</td>\n",
557+
" <td>None</td>\n",
558+
" <td>regular_ll</td>\n",
559+
" </tr>\n",
560+
" <tr>\n",
561+
" <th>4</th>\n",
562+
" <td>ecmf</td>\n",
563+
" <td>q</td>\n",
564+
" <td>isobaricInhPa</td>\n",
565+
" <td>925</td>\n",
566+
" <td>20250827</td>\n",
567+
" <td>0</td>\n",
568+
" <td>6</td>\n",
569+
" <td>fc</td>\n",
570+
" <td>None</td>\n",
571+
" <td>regular_ll</td>\n",
572+
" </tr>\n",
573+
" <tr>\n",
574+
" <th>...</th>\n",
575+
" <td>...</td>\n",
576+
" <td>...</td>\n",
577+
" <td>...</td>\n",
578+
" <td>...</td>\n",
579+
" <td>...</td>\n",
580+
" <td>...</td>\n",
581+
" <td>...</td>\n",
582+
" <td>...</td>\n",
583+
" <td>...</td>\n",
584+
" <td>...</td>\n",
585+
" </tr>\n",
586+
" <tr>\n",
587+
" <th>97</th>\n",
588+
" <td>ecmf</td>\n",
589+
" <td>z</td>\n",
590+
" <td>isobaricInhPa</td>\n",
591+
" <td>600</td>\n",
592+
" <td>20250827</td>\n",
593+
" <td>0</td>\n",
594+
" <td>6</td>\n",
595+
" <td>fc</td>\n",
596+
" <td>None</td>\n",
597+
" <td>regular_ll</td>\n",
598+
" </tr>\n",
599+
" <tr>\n",
600+
" <th>98</th>\n",
601+
" <td>ecmf</td>\n",
602+
" <td>w</td>\n",
603+
" <td>isobaricInhPa</td>\n",
604+
" <td>300</td>\n",
605+
" <td>20250827</td>\n",
606+
" <td>0</td>\n",
607+
" <td>6</td>\n",
608+
" <td>fc</td>\n",
609+
" <td>None</td>\n",
610+
" <td>regular_ll</td>\n",
611+
" </tr>\n",
612+
" <tr>\n",
613+
" <th>99</th>\n",
614+
" <td>ecmf</td>\n",
615+
" <td>u</td>\n",
616+
" <td>isobaricInhPa</td>\n",
617+
" <td>925</td>\n",
618+
" <td>20250827</td>\n",
619+
" <td>0</td>\n",
620+
" <td>6</td>\n",
621+
" <td>fc</td>\n",
622+
" <td>None</td>\n",
623+
" <td>regular_ll</td>\n",
624+
" </tr>\n",
625+
" <tr>\n",
626+
" <th>100</th>\n",
627+
" <td>ecmf</td>\n",
628+
" <td>t</td>\n",
629+
" <td>isobaricInhPa</td>\n",
630+
" <td>600</td>\n",
631+
" <td>20250827</td>\n",
632+
" <td>0</td>\n",
633+
" <td>6</td>\n",
634+
" <td>fc</td>\n",
635+
" <td>None</td>\n",
636+
" <td>regular_ll</td>\n",
637+
" </tr>\n",
638+
" <tr>\n",
639+
" <th>101</th>\n",
640+
" <td>ecmf</td>\n",
641+
" <td>v</td>\n",
642+
" <td>isobaricInhPa</td>\n",
643+
" <td>925</td>\n",
644+
" <td>20250827</td>\n",
645+
" <td>0</td>\n",
646+
" <td>6</td>\n",
647+
" <td>fc</td>\n",
648+
" <td>None</td>\n",
649+
" <td>regular_ll</td>\n",
650+
" </tr>\n",
651+
" </tbody>\n",
652+
"</table>\n",
653+
"<p>102 rows × 10 columns</p>\n",
654+
"</div>"
655+
],
656+
"text/plain": [
657+
" centre shortName typeOfLevel level dataDate dataTime stepRange \\\n",
658+
"0 ecmf mcc mediumCloudLayer 800 20250827 0 6 \n",
659+
"1 ecmf vsw soilLayer 1 20250827 0 6 \n",
660+
"2 ecmf vsw soilLayer 2 20250827 0 6 \n",
661+
"3 ecmf z isobaricInhPa 400 20250827 0 6 \n",
662+
"4 ecmf q isobaricInhPa 925 20250827 0 6 \n",
663+
".. ... ... ... ... ... ... ... \n",
664+
"97 ecmf z isobaricInhPa 600 20250827 0 6 \n",
665+
"98 ecmf w isobaricInhPa 300 20250827 0 6 \n",
666+
"99 ecmf u isobaricInhPa 925 20250827 0 6 \n",
667+
"100 ecmf t isobaricInhPa 600 20250827 0 6 \n",
668+
"101 ecmf v isobaricInhPa 925 20250827 0 6 \n",
669+
"\n",
670+
" dataType number gridType \n",
671+
"0 fc None regular_ll \n",
672+
"1 fc None regular_ll \n",
673+
"2 fc None regular_ll \n",
674+
"3 fc None regular_ll \n",
675+
"4 fc None regular_ll \n",
676+
".. ... ... ... \n",
677+
"97 fc None regular_ll \n",
678+
"98 fc None regular_ll \n",
679+
"99 fc None regular_ll \n",
680+
"100 fc None regular_ll \n",
681+
"101 fc None regular_ll \n",
682+
"\n",
683+
"[102 rows x 10 columns]"
684+
]
685+
},
686+
"execution_count": 3,
687+
"metadata": {},
688+
"output_type": "execute_result"
473689
}
474690
],
475691
"source": [
@@ -487,19 +703,18 @@
487703
"filename = f'{today}{timez[:-2]}0000-{step}h-{stream_}-{type_}.grib2'\n",
488704
"\n",
489705
"with requests.Session() as s:\n",
490-
" try:\n",
491-
" start = datetime.datetime.now()\n",
492-
" response = requests.get(f'https://data.ecmwf.int/ecpds/home/opendata/{today}/{timez}{model}{resol}{stream_}/{filename}', stream=True)\n",
493-
" if response.status_code == 200:\n",
494-
" with open(filename, mode=\"wb\") as file:\n",
495-
" for chunk in response.iter_content(chunk_size=10 * 1024):\n",
496-
" file.write(chunk)\n",
497-
" end = datetime.datetime.now()\n",
498-
" diff = end - start\n",
499-
" print(f'The {filename} file downloaded in {diff.seconds} seconds.')\n",
500-
" except:\n",
501-
" print(f'There is no file {filename} to download.')\n",
502-
"ekd.download_example_file(f'{DATADIR}/{filename}')"
706+
" start = datetime.datetime.now()\n",
707+
" response = requests.get(f'https://data.ecmwf.int/ecpds/home/opendata/{today}/{timez}{model}{resol}{stream_}/{filename}', stream=True)\n",
708+
" response.raise_for_status()\n",
709+
" with open(filename, mode=\"wb\") as file:\n",
710+
" for chunk in response.iter_content(chunk_size=10 * 1024):\n",
711+
" file.write(chunk)\n",
712+
" end = datetime.datetime.now()\n",
713+
" diff = end - start\n",
714+
" print(f'The {filename} file downloaded in {diff.seconds} seconds.')\n",
715+
"\n",
716+
"data = ekd.from_source(\"file\", f'{DATADIR}/{filename}')\n",
717+
"data.ls()"
503718
]
504719
},
505720
{

0 commit comments

Comments
 (0)