Пользовательское имя файла при чтении в файлах netCDF в Python

У меня есть набор файлов данных о влажности почвы с 1953 по 2014 год. Все они имеют форму cpc_soil_YYYY.nc (где YYYY — один из этих лет). Есть ли способ запросить у пользователя ввод данных о том, какой год пользователь хотел бы просмотреть, и открыть ли моя программа соответствующую функцию? В настоящее время у меня есть это, где я должен вручную изменить год в gedit и написал функции для захвата каждой переменной (влажность почвы как функция времени, широта, долгота):

    import netCDF4 as nc
    import numpy as np
    import numpy.ma as ma
    import csv as csv

    fid=nc.MFDataset('/data/reu_data/soil_moisture/cpc_soil_1957.nc','r')
    fid.close()
    ncf='/data/reu_data/soil_moisture/cpc_soil_1957.nc'

    def read_var(ncfile, varname):
        fid=nc.Dataset(ncfile, 'r')
        out=fid.variables[varname][:]   
        fid.close()
        return out

    time=read_var(ncf, 'time')
    lat=read_var(ncf, 'lat')
    lon=read_var(ncf, 'lon')
    soil=read_var(ncf, 'soilw')

person runnernado77    schedule 09.06.2015    source источник


Ответы (1)


Вы можете использовать input(), чтобы попросить пользователя ввести год. Затем вы можете использовать это для создания пути к файлу.

...
year = input("Enter year: "))
filename = '/data/reu_data/soil_moisture/cpc_soil_%s.nc' % (year,)
fid=nc.MFDataset(filename,'r')
fid.close()
...

Вы должны выполнить проверку ошибок, чтобы убедиться, что введенное пользователем значение действительно соответствует году и попадает в диапазон ваших данных.

Подробнее о вводе/выводе в Python можно прочитать здесь.

person ronakg    schedule 09.06.2015