Вызов функции из внешнего файла в Python - PullRequest
0 голосов
/ 08 июня 2019

Я пытаюсь вызвать функцию из другого файла в Python.Я пытаюсь обработать спутниковые изображения с Goes 16 в формате NetCDF.Я извлекаю различные значения из файла, необходимого для функций, сохраненных в .py файле с именем «remap».Часть моего основного кода выглядит следующим образом:

from remap import remap
# Calculate the image extent required for the reprojection
H = nc.variables['goes_imager_projection'].perspective_point_height
x1 = nc.variables['x_image_bounds'][0] * H
x2 = nc.variables['x_image_bounds'][1] * H
y1 = nc.variables['y_image_bounds'][1] * H
y2 = nc.variables['y_image_bounds'][0] * H

# Projection Prameters 
lat_0 = nc.variables['goes_imager_projection'].latitude_of_projection_origin
lon_0 = nc.variables['goes_imager_projection'].longitude_of_projection_origin
a = nc.variables['goes_imager_projection'].semi_major_axis
b = nc.variables['goes_imager_projection'].semi_minor_axis
f = 1/nc.variables['goes_imager_projection'].inverse_flattening

# Call the reprojection funcion
grid = remap(path, extent, resolution, x1, y1, x2, y2)

В файле .py, который я назвал "remap", функция определяется как:

# Define KM_PER_DEGREE
KM_PER_DEGREE = 111.32

# GOES-16 Spatial Reference System
sourcePrj = osr.SpatialReference()
sourcePrj.ImportFromProj4('+proj=geos +h=' + H + ' +a=' + a + ' +b=' + b + '  +f=' + f + 'lat_0=' + lat_0 + ' +lon_0=' + lon_0 + ' +sweep=x +no_defs')

# Lat/lon WSG84 Spatial Reference System
targetPrj = osr.SpatialReference()
targetPrj.ImportFromProj4('+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')

def remap(path, extent, resolution, x1, y1, x2, y2):
... (and so on)

Теперь у меня есть дваразличные проблемы:

(1) Моя первая проблема в том, что я получаю ошибку из системы, говорящую: «remap () принимает 4 позиционных аргумента, но 7 было дано», чего я не понимаю, почему происходит, потому что яя уже определил эти 7 аргументов в функции из второго файла с именем «remap»

(2) Моя вторая проблема заключается в том, что я не знаю, как вызывать значения из моего исходного кода, извлеченного из файла NetCDFнапример: «lat_0, lon_0, a, b, f и H» для использования во втором файле, которые необходимы с самого начала для использования функции «remap».

Есть предложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...