Python и API -> проблема с кэшем - PullRequest
0 голосов
/ 05 июля 2018

Абсолютно новый для Python (только что узнал из Code Academy; нет реального опыта)!

У меня есть эта проблема:

Я хотел бы обновить код Python / API в модели Crop ( Ссылка на код github ), которая собирает метеорологические данные из базы данных NASA POWER ( Ссылка на API Nasa POWER ), из-за новых значений и параметров.

Исходный API был:

server = "asdc-arcgis.larc.nasa.gov"        
t_url = ("https://{server}/cgi-bin/cgiwrap/solar/agro.cgi?" +
              "email=agroclim%40larc.nasa.gov&step=1&lat={lat}&lon={lon}" +
              "&ms=1&ds=1&ys=1984&me={month}&de={day}&ye={year}&p=toa_dwn&" +
              "p=swv_dwn&p=lwv_dwn&p=T2M&p=T2MN&p=T2MX&p=RH2M&" +
              "p=DFP2M&p=RAIN&p=WS10M&submit=Submit")

Мое намерение / попытка:

server = "https://power.larc.nasa.gov/cgi-bin/v1/DataAccess.py?"
t_url = (" https://power.larc.nasa.gov/cgi-bin/v1/DataAccess.py?" +
             " request=execute&identifier=" +
             "&parameters=ALLSKY_TOA_SW_DWN,ALLSKY_SFC_SW_DWN,ALLSKY_SFC_LW_DWN,T2M,T2M_MIN,T2M_MAX,RH2M,T2MDEW,PRECTOT,WS10M" +
             "&startDate=19900101" +
             "&endDate=20160101&userCommunity=AG" +
             "&tempAverage=DAILY&outputList=JSON,ASCII,CSV&lat={lat}&lon={lon}&user=anonymous")

Ошибка в командной строке после попытки подключения к NASA POWER с определенными координатами:

 File "C:\Users...\pcse\db\nasapower.py", line 87, in __init__
cache_file = self._find_cache_file(self.latitude, self.longitude)
 File "C:\Users...\pcse\db\nasapower.py", line 232, in _find_cache_file
cache_filename = self._get_cache_filename(latitude, longitude)
 File "C:\Users...\pcse\db\nasapower.py", line 247, in _get_cache_filename
int(latitude*10), int(longitude*10))
TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'

Я не уверен, в чем проблема . Широта и долгота мне кажутся хорошими. Я думал об API даты (дня, месяца, года), но нет новой документации для формата даты в соответствии с фактическим днем ​​((Звездный год = 1984; конечный год = date.today ()). Некоторые подсказки, пожалуйста?

PS: я также изменил все значения в коде Python на новые имена значений (например, RAIN -> PRECTOT).

Спасибо!

...