Я пытаюсь создать файл GeoJSON с модулем Python geojson, состоящим из регулярной 2-й сетки точек, чьи «свойства» связаны с геофизическими переменными (скоростью, температурой, и т.д). Информация поступает из файла netcdf.«Не совместимый JSON-номер», строя файл geojson
Так что код что-то вроде этого:
from netCDF4 import Dataset
import numpy as np
import geojson
ncfile = Dataset('20140925-0332-n19.nc', 'r')
u = ncfile.variables['Ug'][:,:] # [T,Z,Y,X]
v = ncfile.variables['Vg'][:,:]
lat = ncfile.variables['lat'][:]
lon = ncfile.variables['lon'][:]
features=[]
for i in range(0,len(lat)):
for j in range(0,len(lon)):
coords = (lon[j],lat[i])
features.append(geojson.Feature(geometry = geojson.Point(coords),properties={"u":u[i,j],"v":v[i,j]}))
В этом случае точка имеет компоненты скорости в объекте «Свойства». Ошибки я получаю на линии features.append() со следующим сообщением:
*ValueError: -5.4989638 is not JSON compliant number*
, который соответствует значению долготы. Может ли кто-то объяснить мне, что может быть неправильным?
Единственный код в модуле GeoJSON, который соответствует вашей ошибки здесь: https://github.com/frewsxcv/python-geojson/blob/bfea4a814632806761093eafcd50de27ec013de7/geojson/geometry.py#L35-L40 Можете ли вы попробовать «класс (скорость) .__ name__', чтобы узнать, что такое класс вашего номера скорости? – bretmattingly
Все являются массивами numpy класса «numpy.float32». – user1259970