Как использовать часть имен файлов в качестве входных данных для функции? - PullRequest
0 голосов
/ 13 июня 2019

У меня есть диапазон из 200 файлов с именами от A2016071.4d.L3m_OC.nc до A2016271.4d.L3m_OC.nc, где последние 3 цифры (то есть 071 и 271) представляют юлианский день года.Как мне отрегулировать эту функцию:

import numpy as np

def daylength(dayOfYear, lat):
    latInRad = np.deg2rad(lat)
    declinationOfEarth = 23.45*np.sin(np.deg2rad(360.0*(283.0+dayOfYear)/365.0))
    if -np.tan(latInRad) * np.tan(np.deg2rad(declinationOfEarth)) <= -1.0:
        return 24.0
    elif -np.tan(latInRad) * np.tan(np.deg2rad(declinationOfEarth)) >= 1.0:
        return 0.0
    else:
        hourAngle = np.rad2deg(np.arccos(-np.tan(latInRad) * np.tan(np.deg2rad(declinationOfEarth))))
        return 2.0*hourAngle/15.0

vec_daylength = np.vectorize(daylength)
vec_daylength(dayOfYear, lat)

, чтобы dayOfYear использовал числа в имени файла вместо того, чтобы вручную определять 200 dayOfYear переменные?

1 Ответ

0 голосов
/ 13 июня 2019

Если это всегда последние три цифры:

fname = 'A2016071.4d.L3m_OC.nc'
dayOfYear = int( fname.split('.')[0][-3:] )
print( dayOfYear )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...