I am downloading ECMWF MARS archived operational forecast data with python WebAPI. The downloading process is fine but the speed is very slow with pressure level data. When I download Surface data (270M per file) it takes only 2 minutes, while when I download PL data (~400M per file) it takes 2 hours. The downloading speed is high (about 5M/s) but after each request has been active, it takes hours to start downloading. This speed is not that low at the beginning, but it takes longer and longer. Therefore, Could anyone tell me if there is any way to make it faster? Can I download data with lower resolution?
#!/usr/bin/env python
from ecmwfapi import ECMWFService
import os
#setup the date
server = ECMWFService("mars")
year = '2022'
month = '01'
#day=['01','02','03']
day = ['01']
step = [f"{i:03}" for i in range(0, 241, 6)]
for k in day:
print(k+"th day")
for s in step:
server.execute(
{
"class": "od",
"date": year+month+k,
"expver": "1",
"levtype": "sfc",
"param": "129.128/165.128/166.128/167.128/168.128/172.128/134.128/151.128/235.128/31.128/34.128/141.128/139.128/170.128/183.128/236.128/39.128/40.128/41.128/42.128/33.128",
"step": s,
"stream": "oper",
"time":"00:00:00",
"type": "fc",
},
"ECMWF_SFC_"+year+month+k+"00_"+s+".grb")
server.execute(
{
"class": "od",
"date": year+month+k,
"expver": "1",
"levtype": "pl",
"levelist":"1/2/3/5/7/10/20/30/50/70/100/150/200/250/300/400/500/600/700/800/850/900/925/950/1000",
"param": "129.128/130.128/157.128/131.128/132.128",
"step": s,
"stream": "oper",
"time":"00:00:00",
"type": "fc",
},
"ECMWF_PL_"+year+month+k+"00_"+s+".grb")