GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Gibt es eine Möglichkeit, eine NETCDF-Datei zuzuschneiden?

Ja, mit ncks ab NCO Paket:http://nco.sourceforge.net/nco.html

Wenn Sie die Indizes kennen, die dem gewünschten Lat/Lon-Bereich entsprechen, sagen wir zum Beispiel, sie sind 30-40 in Breitengrad und 25-50 in Längengrad, dann könnten Sie die netCDF-Datei mit

zuschneiden
ncks -d lat,30,40 -d lon,25,50 example.nc -O cropped_example.nc

Stellen Sie sicher, dass Sie die Indizes mit ganzzahligen Werten angeben.

Ansonsten können Sie den Bereich der gewünschten Längen- und Breitengrade auch direkt angeben, in diesem Fall aber müssen Stellen Sie sicher, dass Sie Dezimalpunkte verwenden, um den Bereich als Gleitkommazahlen zu übergeben.

 ncks -d lat,30.,-10. -d lon,-30.,60. example.nc -O cropped_example.nc

nco funktioniert gut, aber nur um eine Alternative aufzulisten, man kann es auch mit cdo machen (Klimadatenbetreiber), die ich mir leichter merken kann. Sie können die Längen- und Breitengrade auf diese Weise direkt angeben:

cdo sellonlatbox,lon1,lon2,lat1,lat2 infile.nc outfile.nc

wobei lon1,lon2,lat1,lat2 die Grenzen des gewünschten Bereichs definieren.

Beachten Sie, dass Längengrade mit 0:360 oder auch mit -180:180 Konventionen angegeben werden können, unabhängig davon, welche in der Eingabedatei verwendet werden. Die Ausgabekonventionen folgen denen, die im cdo-Befehl verwendet werden. Dieser Befehl kann auch verwendet werden, um eine Datei von einem Format in das andere zu konvertieren.

Weitere Einzelheiten zum Extrahieren von Unterregionen finden Sie in diesem Video-Tutorial auf YouTube

Wenn Sie cdo nicht haben bereits installiert, können Sie es unter Ubuntu mit

herunterladen
sudo apt-get install cdo

cdo verfügt über viele weitere Funktionen zum Bearbeiten, Kombinieren und Aufteilen von Dateien und eine hervorragende Online-Dokumentation. Beachten Sie das für cdo um zu funktionieren, müssen die Koordinatenvariablen (lat/lon) gemäß den CF-Konventionen definiert werden, also auf diese Weise der nco Lösung ist robuster.


Wenn Sie Linux oder macOS verwenden, können Sie dies ganz einfach mit nctoolkit (https://nctoolkit.readthedocs.io/en/latest/) auf Python tun.

import nctoolkit as nc
data = nc.open_data("example.nc")
data.crop(lon = [25, 50], lat = [30, 40])
data.to_nc("output.nc")

Unter der Haube verwendet nctoolkit CDO. Das obige ist also das Äquivalent des oben erwähnten CDO-Ansatzes:

cdo sellonlatbox,lon1,lon2,lat1,lat2 infile.nc outfile.nc

Linux
  1. Ein cleverer Weg, ein fettes Dateisystem zu defragmentieren?

  2. Gibt es eine Möglichkeit, ein unterbrochenes scp einer Datei fortzusetzen?

  3. Gibt es eine Möglichkeit, Shortcuts in Midnight Commander zu ändern?

  4. Gibt es eine Möglichkeit, Text in htop zu kopieren?

  5. Gibt es eine richtige Möglichkeit, Protokolle zu löschen?

Gibt es eine Möglichkeit, Dateien in einer ZIP-Datei zu bearbeiten, ohne sie vorher explizit zu extrahieren?

Gibt es eine Möglichkeit, Badblocks neu zu starten?

Gibt es eine Möglichkeit, in `ps` nach mehreren Bedingungen auszuwählen?

Gibt es eine Möglichkeit, den Prozess zu hören?

Der sicherste Weg, um das Schließen eines Dateideskriptors zu erzwingen

Gibt es eine schnelle Möglichkeit, die allerletzte Datei in einem großen TAR zu erhalten?