Ich versuche eine GeoJSON-Datei mit Python-Geojson-Modul zu erstellen, das auf einem regulären 2D-Raster von Punkten basiert, deren 'Eigenschaften' mit geophysikalischen Variablen (Geschwindigkeit, Temperatur, etc). Die Informationen stammen aus einer netcdf-Datei."Nicht JSON-konforme Nummer" Erstellen einer Geojson-Datei
So ist der Code so ähnlich:
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]}))
In diesem Fall wird der Punkt Geschwindigkeitskomponenten in den 'Eigenschaften' Objekt hat. Der Fehler I erhalten, ist auf der features.append() entsprechend der folgenden Nachricht:
*ValueError: -5.4989638 is not JSON compliant number*
, die zu einem Längenwert entspricht. Kann mir jemand erklären, was falsch ist?
Der einzige Code in das GeoJSON-Modul, das auf Ihre Fehler entspricht, wird hier gefunden: https://github.com/frewsxcv/python-geojson/blob/bfea4a814632806761093eafcd50de27ec013de7/geojson/geometry.py#L35-L40 Können Sie eine 'class (velocity) .__ name__' versuchen, um zu sehen, wie die Klasse Ihrer Velocity-Nummer ist? – bretmattingly
Alle sind Nummernfelder der Klasse "numpy.float32". – user1259970