Ich versuche NetCDF-Dateien in CSV zu konvertieren. Dateien sind in Threeds Server gespeichert. Ich habe unter Code geschrieben, der Dateien von Thredds Server liest und wählen Sie sechs Variablen aus der Liste der Variablen in NetCDF-Dateien und gespeichert sie lokal im CSV-Format.Convert netCDF-Datei in Csv mit Python
from datetime import datetime
from netCDF4 import Dataset
import netCDF4
import pandas as pd
import csv
def get_thredds_url(datetime_group, forecast_hour):
base_url="path"
thredds_url="path"
cycle_hour = "%02d" % datetime_group.hour
file_str=datetime_group.strftime("%Y%m%d%H")+"/gfs.t%sz.pgrb2.0p25.f%03d" % \
(cycle_hour, forecast_hour)
url = base_url + thredds_url + file_str
return (url)
Der folgende Code zeigt die erforderlichen Variablen.
def main():
datetime_group = datetime(2017, 9, 26, 0)
forecast_hour = 240
url = get_thredds_url(datetime_group, forecast_hour)
print (url)
nc_handle=Dataset(url)
#print (nc_handle.variables.keys())
lat=nc_handle.variables['lat'][:]
lon=nc_handle.variables['lon'][:]
issue_time=nc_handle.variables['time'][:]
valid_time=nc_handle.variables['time1'][:]
temp=nc_handle.variables['Temperature_height_above_ground'][:]
dewpoint_temp=lat=nc_handle.variables['Dewpoint_temperature_height_above_ground'][:]
dtime = netCDF4.num2date(issue_time[:],units=units)
tmp = pd.Series(temp, index=dtime)
tmp.to_csv('temp.csv',index=True, header=True)
csvwriter = csv.writer(tmp, delimiter=',')
print (csvwriter)
if __name__ == "__main__":
main()
Problem: Ich bin nicht in der Lage Datei in csvnformat zu schreiben, die die Variablen, zB lat, lon enthält, Zeit, time1, Temperature_height_above_ground. Gewünschte Ausgabe ist unten angegeben:
tmp.csv
lat lon time time1 Temperature_height_above_ground
1 ... .. ... .... ......
2 ... .. ... .... ......
3 ... .. ... .... ......
Kann mir jemand dabei helfen?
Vielen Dank im Voraus!
Die Frage ist nicht klar macht, was genau das Problem ist. Unter https://stackoverflow.com/help/how-to-ask finden Sie eine Anleitung und bearbeiten Sie Ihre Frage, um z. eine Fehlermeldung. Und während Sie dabei sind, beheben Sie den Einzug Ihres Beitrags, da die Zeile "Problem: Ich bin nicht in der Lage ..." momentan aussieht, als wäre sie Teil des Quellcodes, was ich für falsch halte. – FriendFX