2016-08-20 2 views
0

Ich habe eine NetCDF-Datei mit basemap.gs Skript in Absolventen maskiert. Hier ist, was ich habe mit der Maske:Maske und Drucken NetCDF

Example

Also, ich möchte eine NetCDF-Datei erhalten, die nur die kontinentalen Daten containts, jeder kann mir dabei helfen?

Antwort

0

Da Sie bereits die nicht-kontinentalen Werte maskiert haben, ist der Prozess eigentlich ziemlich einfach. Es gibt einen Befehl namens "sdfwrite", der schreiben und Variable in Grads in Datei definiert. Der Code würde in etwa so aussehen:

define data = <insert expression for masked out data here> 
set sdfwrite out.nc 
sdfwrite data 

* Stellen Sie sicher, dass Sie die spitzen Klammern entfernen; Diese wurden nur für die Show

Geben Sie diese in Absolventen wird 1) Speicher zuweisen, um die angezeigten Daten in der Variablen "Daten" 2) den Namen der Ausgabedatei zu "out.nc" (Sie können natürlich ändern dies zu was auch immer Sie mögen), und 3) schreibt die Informationen in der Variable "Daten" in die out.nc Datei.

Nun, so weit ich weiß, gibt es keine Möglichkeit, einfach nicht die maskierten Werte nicht in die Datei schreiben zu lassen, aber damit werden sie alle als null/undefinierte Werte geschrieben.

sdfwrite documentation

hoffe, das hilft !!

0

Eine Möglichkeit könnte sein, CDO zu verwenden, um ein Land-Meer-Maske zu erstellen und dann alle Meer Punkte auf fehlen:

cdo -f nc2 setctomiss,0 -gtc,0 -remapcon,r720x360 -topo seamask.nc 

Wo Auflösung ist die Beschreibung der Daten-Datei Sie maskieren möchten: z r720x360

Die GTC, produziert 1, wenn die eingebaute Topographie größer als Meeresspiegel ist.

Dann setzt die setctomiss alle "Null" Punkte zu fehlen.

können Sie jetzt so Ihre Daten-Datei zu maskieren:

cdo mul datafile.nc seamask.nc masked_datafile.nc 

Sie tatsächlich diese auf einer Linie mit der Rohrleitung verbinden könnte, aber es ist lang und etwas undurchsichtig.