GoGPT Best VPN GoSearch

Ulubiona usługa OnWorks

nccopy - Online w chmurze

Uruchom nccopy u dostawcy bezpłatnego hostingu OnWorks przez Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS

To jest polecenie nccopy, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu darmowych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS

PROGRAM:

IMIĘ


nccopy - Skopiuj plik netCDF, opcjonalnie zmieniając format, kompresję lub chunking w
wyjście.

STRESZCZENIE


ncopy [-k rodzaj_nazwa ] [-rodzaj_kodu] [-D n ] [-s] [-c specyfikacja kawałka ] [-u] [-w] [-[v|V]
zm1,...] [-[g|G] grp1,...] [-m rozmiar bufora ] [-H chunk_cache ] [-tj elementy_pamięci podręcznej ]
[-R] w pliku plik wyjściowy

OPIS


nie kopiuj narzędzie kopiuje wejściowy plik netCDF w dowolnym obsługiwanym wariancie formatu do
wyjściowy plik netCDF, opcjonalnie konwertując dane wyjściowe do dowolnego kompatybilnego formatu netCDF
wariant, kompresowanie danych lub zmiana kolejności danych. Na przykład, jeśli zbudowany z
biblioteka netCDF-3, plik netCDF classic można skopiować do 64-bitowego pliku offsetowego netCDF,
pozwalając na większe zmienne. W przypadku zbudowania z biblioteką netCDF-4, klasyczny plik netCDF
można skopiować do pliku netCDF-4 lub do pliku klasycznego modelu netCDF-4, co pozwala:
kompresja danych, wydajne zmiany schematów, większe rozmiary zmiennych i wykorzystanie innych
Funkcje netCDF-4.

Jeśli nie określono formatu wyjściowego, z opcją -k rodzaj_nazwa or -rodzaj_kodu, a następnie wyjście
użyje tego samego formatu co dane wejściowe, chyba że dane wejściowe mają klasyczny lub 64-bitowy offset i
określono albo chunking, albo kompresję, w którym to przypadku wyjściem będzie netCDF-4
klasyczny format modelu. Próba niektórych rodzajów konwersji formatu zakończy się błędem,
jeśli konwersja nie jest możliwa. Na przykład próba skopiowania pliku netCDF-4, który:
wykorzystuje cechy ulepszonego modelu, takie jak grupy lub ciągi o zmiennej długości, do dowolnego z
inne rodzaje formatów netCDF, które wykorzystują model klasyczny, spowodują błąd.

nie kopiuj służy również jako przykład ogólnego programu netCDF-4, z jego zdolnością do odczytu
dowolny poprawny plik netCDF i obsługuje zagnieżdżone grupy, ciągi i typy zdefiniowane przez użytkownika, w tym
dowolnie zagnieżdżone typy złożone, typy o zmiennej długości i dane dowolnego prawidłowego netCDF-4
rodzaj.

Jeśli obsługa DAP była włączona, gdy nie kopiuj został zbudowany, nazwa pliku może określać adres URL DAP.
Może to służyć do konwersji danych na serwerach DAP do lokalnych plików netCDF.

OPCJE


-k rodzaj_nazwa
Użyj nazwy formatu, aby określić rodzaj pliku, który ma zostać utworzony, i wnioskując,
model danych (tj. netcdf-3 (klasyczny) lub netcdf-4 (ulepszony)). Możliwe
argumentami są:

'nc3' lub 'classic' => klasyczny format netCDF

'nc6' lub '64-bitowy offset' => 64-bitowy format netCDF

'nc4' lub 'netCDF-4' => format netCDF-4 (rozszerzony model danych)

'nc7' lub 'klasyczny model netCDF-4' => format klasycznego modelu netCDF-4

Uwaga: stare numery formatów „1”, „2”, „3”, „4”, odpowiadające nazwom formatów
'nc3', 'nc6', 'nc4' lub 'nc7' również są nadal akceptowane, ale przestarzałe,
ze względu na łatwe pomylenie numerów formatów i nazw formatów.

[-rodzaj_kodu]
Użyj kodu numerycznego formatu (zamiast nazwy formatu), aby określić rodzaj pliku, który ma być
stworzony i, w wyniku wnioskowania, model danych (tj. netcdf-3 (klasyczny) kontra netcdf-4
(wzmocniony)). Kody numeryczne to:

3 => klasyczny format netcdf

6 => 64-bitowy format netCDF

4 => format netCDF-4 (ulepszony model danych)

7 => klasyczny format modelu netCDF-4
Kod numeryczny „7” jest używany, ponieważ „7=3+4”, określając format, który używa netCDF-3
model danych zapewniający zgodność z formatem przechowywania netCDF-4 w celu zapewnienia wydajności. Kredyt jest
ze względu na podoficera za używanie tych kodów numerycznych zamiast starych i mylących numerów formatu.

-d n
Dla danych wyjściowych netCDF-4, w tym klasycznego modelu netCDF-4, określ poziom deflacji
(poziom kompresji) dla zmiennych danych wyjściowych. 0 odpowiada brakowi kompresji
i 9 do maksymalnej kompresji, przy wyższych poziomach kompresji wymagających
nieco więcej czasu na kompresję lub dekompresję niż na niższych poziomach. Kompresja
osiągnięty może również zależeć od wyjściowych parametrów dzielenia na kawałki. Jeśli ta opcja to
określony dla formatu klasycznego lub pliku wejściowego w 64-bitowym formacie offsetowym, nie jest
konieczne jest również określenie, że wyjście powinno być klasycznym modelem netCDF-4, ponieważ
będzie domyślny. Jeśli ta opcja nie jest określona, ​​a plik wejściowy zawiera:
skompresowanych zmiennych, kompresja będzie nadal zachowana w danych wyjściowych, używając
domyślnie takie samo chunking jak w danych wejściowych.

Należy pamiętać, że nie kopiuj wymaga, aby wszystkie zmienne były skompresowane przy użyciu tej samej kompresji
poziom, ale API nie ma takiego ograniczenia. Dzięki programowi, który możesz dostosować
kompresja dla każdej zmiennej niezależnie.

-s Dla wyjścia netCDF-4, w tym klasycznego modelu netCDF-4, określ tasowanie
zmienne bajty danych przed kompresją lub po dekompresji. Tasowanie odnosi się do
przeplatanie bajtów w kawałku, tak że pierwsze bajty wszystkich wartości są
ciągły w pamięci, po którym następują wszystkie drugie bajty itd., które często
poprawia kompresję. Ta opcja jest ignorowana, chyba że niezerowy poziom deflacji wynosi
określony. Użycie -d0 do określenia braku deflacji danych wejściowych, które zostały
skompresowane i tasowane wyłącza zarówno kompresję, jak i tasowanie na wyjściu.

-u Konwertuj dowolne wymiary o nieograniczonym rozmiarze w danych wejściowych na wymiary o stałym rozmiarze w
wyjście. Może to przyspieszyć dostęp do zmiennych w czasie, ale spowolnić nagrywanie w
czasowy dostęp do wielu zmiennych w nieograniczonym wymiarze.

-w Przechowuj dane wyjściowe w pamięci (jako bezdyskowy plik netCDF) do czasu zamknięcia danych wyjściowych, po czym
plik wyjściowy czasu jest zapisywany na dysku. Może to znacznie przyspieszyć operacje, takie jak:
konwersja nieograniczonego wymiaru do stałego rozmiaru (opcja -u), chunking, rechunking lub
kompresja danych wejściowych. Wymaga, aby dostępna pamięć była wystarczająco duża, aby pomieścić
plik wyjściowy. Ta opcja może zapewnić większe przyspieszenie niż dokładne dostrojenie
opcje -m, -h lub -e iz pewnością jest o wiele prostsze.

-c specyfikacja kawałka
Dla wyjścia netCDF-4, w tym klasycznego modelu netCDF-4, określ chunking
(wielowymiarowe kafelki) dla zmiennych danych na wyjściu. Jest to przydatne do
określ jednostki dostępu do dysku, kompresji lub innych filtrów, takich jak sumy kontrolne.
Zmiana chunkingu w pliku netCDF może również znacznie przyspieszyć dostęp, wybierając
kształty fragmentów, które są odpowiednie dla najczęstszych wzorców dostępu.

specyfikacja kawałka argument jest ciągiem skojarzeń oddzielonych przecinkami, z których każde określa
nazwę wymiaru, znak „/” i opcjonalnie odpowiednią długość porcji
dla tego wymiaru. Żadne spacje nie powinny pojawiać się w ciągu znaków chunkspec, z wyjątkiem
prawdopodobnie znaki ze znakami ucieczki, które są częścią nazwy wymiaru. Nazwy fragmentów na
przynajmniej jeden wymiar i może pomijać wymiary, które nie mają być dzielone na części lub dla
którego domyślna długość porcji jest pożądana. Jeśli po nazwie wymiaru występuje a
Znak „/”, ale bez kolejnych długości kawałka, rzeczywista długość wymiaru to
przypuszczalny. Jeśli kopiujesz klasyczny plik modelu do pliku wyjściowego netCDF-4, a nie nazywasz
wszystkie wymiary w specyfikacji chunkspec, wymiary nienazwane również będą używać rzeczywistych
długość wymiaru dla długości kawałka. Przykład specyfikacji chunkspec dla zmiennych
które używają wymiarów „m” i „n” mogą mieć wartość „m/100,n/200”, aby określić 100 na 200
kawałki. Aby zobaczyć chunking wynikający z kopiowania ze specyfikacją chunkspec, użyj '-s'
opcja ncdump w pliku wyjściowym.

Specyfikacja porcji „/”, która pomija wszystkie nazwy wymiarów i odpowiadające im długości porcji
określa, że ​​na wyjściu nie ma być dzielenia na kawałki, więc można go użyć do usunięcia wszystkich elementów
pofragmentowane zmienne. Aby zobaczyć fragmentację wynikającą z kopiowania za pomocą
chunkspec, użyj opcji '-s' ncdump w pliku wyjściowym.

Jako optymalizacja we/wy, nie kopiuj ma próg minimalnego rozmiaru nie-rekordu
zmienne, które są podzielone, obecnie 8192 bajtów. W przyszłości użyj tego
próg i jego wielkość można ustawić w opcji.

Należy pamiętać, że nie kopiuj wymaga, aby zmienne, które mają wspólny wymiar, również współdzieliły porcję
rozmiar związany z tym wymiarem, ale interfejs programowania nie ma takiego
ograniczenie. Jeśli potrzebujesz dostosować chunking dla zmiennych niezależnie,
będzie musiał użyć biblioteki API w niestandardowym programie narzędziowym.

-v zm 1...
Dane wyjściowe będą zawierać wartości danych dla określonych zmiennych, oprócz
deklaracje wszystkich wymiarów, zmiennych i atrybutów. Jedna lub więcej zmiennych
musi być określony według nazwy na liście rozdzielanej przecinkami po tej opcji. ten
lista musi być pojedynczym argumentem polecenia, dlatego nie może zawierać unescaped
spacje lub inne znaki odstępu. Nazwane zmienne muszą być poprawne netCDF
zmienne w pliku wejściowym. Zmienna w grupie w pliku netCDF-4 może być:
określony z bezwzględną nazwą ścieżki, na przykład "/GrupaA/GrupaA2/zmienna". Korzystanie z
względna nazwa ścieżki, taka jak „zmienna” lub „grp/zmienna”, określa wszystkie pasujące nazwy zmiennych
w pliku. Domyślnie, bez tej opcji, uwzględniane są wartości danych dla cała kolekcja
zmienne w danych wyjściowych.

-V zm 1...
Dane wyjściowe będą zawierać tylko określone zmienne, ale wszystkie wymiary i globalne
lub grupuj atrybuty. Jedna lub więcej zmiennych musi być określonych przez nazwę w przecinku
lista rozdzielana po tej opcji. Lista musi być pojedynczym argumentem do
polecenie, dlatego nie może zawierać niewymienionych spacji ani innych białych znaków. ten
nazwane zmienne muszą być poprawnymi zmiennymi netCDF w pliku wejściowym. Zmienna w obrębie
grupa w pliku netCDF-4 może być określona z bezwzględną nazwą ścieżki, na przykład
„/GrupaA/GrupaA2/zmienna”. Użycie względnej nazwy ścieżki, takiej jak „var” lub „grp/var”
określa wszystkie pasujące nazwy zmiennych w pliku. Domyślnie, bez tego
opcja, jest uwzględnienie cała kolekcja zmienne w danych wyjściowych.

-g grupa1,...
Dane wyjściowe będą zawierać wartości danych tylko dla określonych grup. Jeden lub więcej
grupy muszą być określone według nazwy na liście rozdzielanej przecinkami po tej opcji.
Lista musi być pojedynczym argumentem polecenia. Nazwane grupy muszą być prawidłowe
grupy netCDF w pliku wejściowym. Domyślnie, bez tej opcji, jest dołączenie
wartości danych dla wszystkich grup w danych wyjściowych.

-G grupa1,...
Dane wyjściowe będą obejmować tylko określone grupy. Jedna lub więcej grup musi być
określony przez nazwę na liście rozdzielanej przecinkami po tej opcji. Lista musi
być pojedynczym argumentem polecenia. Nazwane grupy muszą być prawidłowymi grupami netCDF
w pliku wejściowym. Domyślnie, bez tej opcji, wszystkie grupy są uwzględniane w
wyjście.

-m rozmiar bufora
Liczba całkowita lub zmiennoprzecinkowa, która określa rozmiar kopii w bajtach
bufor używany do kopiowania dużych zmiennych. Sufiks K, M, G lub T mnoży kopię
wielkość bufora odpowiednio o tysiąc, milion, miliard lub bilion. ten
domyślna wartość to 5 MB, ale w razie potrzeby zostanie zwiększona, aby pomieścić co najmniej jedną porcję
porcjowanych zmiennych netCDF-4 w pliku wejściowym. Możesz chcieć określić wartość
większe niż domyślne dla kopiowania dużych plików przez sieci o dużym opóźnieniu. Za pomocą
opcja '-w' może zapewnić lepszą wydajność, jeśli dane wyjściowe mieszczą się w pamięci.

-h chunk_cache
Dla wyjścia netCDF-4, w tym klasycznego modelu netCDF-4, liczba całkowita lub zmiennoprzecinkowa
liczba określająca rozmiar w bajtach pamięci podręcznej porcji przydzielonej dla każdej porcji
zmienny. Nie jest to właściwość pliku, a jedynie dostrajanie wydajności
parametr pozwalający uniknąć wielokrotnego kompresowania lub dekompresji tych samych danych
podczas kopiowania i zmieniania kształtów porcji. Sufiks K, M, G lub T mnoży
wielkość pamięci podręcznej fragmentu odpowiednio o tysiąc, milion, miliard lub bilion. ten
domyślna wartość to 4.194304 MB (lub cokolwiek zostało określone w czasie konfiguracji
stała CHUNK_CACHE_SIZE podczas budowania biblioteki netCDF). Idealnie, nie kopiuj
narzędzie powinno akceptować tylko jeden rozmiar bufora pamięci i dzielić go optymalnie między a
bufor kopiowania i pamięć podręczna fragmentów, ale brak ogólnego algorytmu obliczania optimum
rozmiar pamięci podręcznej porcji został już zaimplementowany. Użycie opcji „-w” może zapewnić lepsze
wydajność, jeśli dane wyjściowe mieszczą się w pamięci.

-e elementy_pamięci podręcznej
Dla wyjścia netCDF-4, w tym klasycznego modelu netCDF-4, określa liczbę porcji
które pamięć podręczna porcji może pomieścić. Sufiks K, M, G lub T mnoży liczbę
fragmenty, które mogą być przechowywane w pamięci podręcznej o tysiąc, milion, miliard lub
trylionów odpowiednio. Nie jest to właściwość pliku, a jedynie
parametr dostrajania wydajności, aby uniknąć kompresji lub dekompresji tego samego
dane wielokrotnie podczas kopiowania i zmieniania kształtów porcji. Wartość domyślna to 1009
(lub cokolwiek zostało określone dla stałej czasowej konfiguracji CHUNK_CACHE_NELEMS, gdy
biblioteka netCDF została zbudowana). Idealnie, nie kopiuj użyteczność powinna określać
optymalna wartość tego parametru, ale brak ogólnego algorytmu obliczania
optymalna liczba elementów pamięci podręcznej porcji została już zaimplementowana.

-r Wczytaj plik wejściowy netCDF classic lub 64-bitowy offset do bezdyskowego pliku netCDF w
pamięci przed kopiowaniem. Wymaga, aby plik wejściowy był wystarczająco mały, aby zmieścił się w
pamięć. Do nie kopiuj, wydaje się, że nie zapewnia to żadnego znaczącego przyspieszenia, więc może
nie być użyteczną opcją.

PRZYKŁADY


Utwórz kopię foo1.nc, pliku netCDF dowolnego typu, do foo2.nc, pliku netCDF tego samego
rodzaj:

nccopy foo1.nc foo2.nc

Pamiętaj, że powyższa kopia nie będzie tak szybka, jak użycie cp lub innego prostego narzędzia do kopiowania,
ponieważ plik jest kopiowany tylko przy użyciu netCDF API. Jeśli plik wejściowy ma dodatkowe bajty
po zakończeniu danych netCDF nie zostaną one skopiowane, ponieważ nie są
dostępne przez interfejs netCDF. Jeśli oryginalny plik został wygenerowany w „Bez wypełnienia”
tak, że wartości wypełnienia nie są przechowywane w celu wypełnienia w celu wyrównania danych, plik wyjściowy
może mieć różne bajty dopełnienia.

Konwertuj plik klasycznego modelu netCDF-4, skompresowany.nc, który wykorzystuje kompresję, do pliku netCDF-3
plik classic.nc:

nccopy -k classic skompresowany.nc classic.nc

Zauważ, że 'nc3' może być użyte zamiast 'classic'.

Pobierz zmienną „time_bnds” i powiązane z nią atrybuty z serwera OPeNDAP i
skopiuj wynik do pliku netCDF o nazwie „tb.nc”:

nie kopiuj 'http://test.opendap.org/opendap/data/nc/sst.mnmean.nc.gz?time_bnds' tb.nc

Zwróć uwagę, że adresy URL, które określają określone zmienne jako argumenty wiersza poleceń, powinny generalnie być:
cytowany, aby uniknąć interpretacji przez powłokę znaków specjalnych, takich jak '?'.

Skompresuj wszystkie zmienne w pliku wejściowym foo.nc, pliku netCDF dowolnego typu, do
plik wyjściowy bar.nc:

nccopy -d1 foo.nc bar.nc

Jeśli foo.nc był klasycznym lub 64-bitowym plikiem netCDF z przesunięciem, bar.nc będzie klasycznym plikiem netCDF-4
model pliku netCDF, ponieważ klasyczne i 64-bitowe warianty formatu offsetu nie obsługują
kompresja. Jeśli foo.nc był plikiem netCDF-4 z kilkoma zmiennymi skompresowanymi przy użyciu różnych
deflacji, wynik będzie również plikiem netCDF-4 tego samego typu, ale wszystkie
zmienne, w tym wszelkie nieskompresowane zmienne w danych wejściowych, będą teraz używać poziomu deflacji
1.

Załóżmy, że dane wejściowe zawierają zmienne siatkowe, które wykorzystują wymiary czasu, szerokości geograficznej i długości, z
1000 razy na 1000 szerokości i 1000 długości geograficznej, a wymiar czasu jest najbardziej zróżnicowany
powoli. Załóżmy również, że użytkownicy chcą przez cały czas szybkiego dostępu do danych w przypadku niewielkiego zestawu
punkty łat-lon. Dostęp do danych 1000 razy zwykle wymagałby uzyskania dostępu do 1000 dysków
bloki, które mogą być powolne.

Reorganizacja danych w porcje na dysku, które mają cały czas w każdej porcji dla kilku
Współrzędne lat i lon znacznie przyspieszyłyby taki dostęp. Aby podzielić dane w
plik wejściowy slow.nc, plik netCDF dowolnego typu, do pliku wyjściowego fast.nc, którego możesz użyć;

nccopy -c czas/1000,szer./40,dł./40 slow.nc fast.nc

aby określić porcje danych po 1000 razy, 40 szerokościach geograficznych i 40 długościach geograficznych. Gdybyś miał dość
pamięć do przechowywania pliku wyjściowego, możesz przyspieszyć operację zmiany kolejności
znacząco, tworząc dane wyjściowe w pamięci przed zapisaniem ich na dysku przy zamknięciu:

nccopy -w -c czas/1000,szer./40,dł./40 slow.nc fast.nc

Korzystaj z nccopy online za pomocą usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

Komendy systemu Linux

Ad




×
reklama
❤️Zrób zakupy, zarezerwuj lub kup tutaj — bezpłatnie, co pomaga utrzymać bezpłatne usługi.