26 Mart 2008 Çarşamba

NetCDF(Network Common Data Form)

Bilimsel veri değişimi için kullanılan, kendi kendini tanımlayan, makina bağımsız ikilik veri format standardıdır. Proje anasayfası UCAR(University Corporation For Atmospheric Research) bünyesindeki Unidata programı sahipliğindedir. UCAR ve Unidata, yazılım, standart geliştirme, güncelleme v.b. gibi konularda NetCDF'in ana kaynağıdır. Format bir açık standarttır. Proje halihazırda 3. versionda aktif olarak desteklenmekte ve 4. version için de destek planlanmaktadır. 4. versionda HDF5 veri dosya formatı ile birleştirilmesi planlanmaktadır. HDF5 dosyalarına alternatif NetCDF arayüzleri sunulacaktır. Format aslen NASA CDF (Common Data Format)'in kavramsal modeli temellidir. Fakat CDF'ten ayrıldığından beri onunla uyumlu değildir.
Format Tanımı :
Veri formatı "kendi kendini tanımlayabilir " dir. Bunun anlamı bir header/başlık vardır. Bu başlık veri dizilerine mahsus dosyanın geri kalanının düzenini tanımlar. Buna ek olarak isim/değer özellikleri (attributes)(bir nesnenin veya başka türlü bir elemanın etkeni) biçiminde metadata dosyalar isteğe bağlı olarak eklenebilirler. Format platformu bağımsızdır, yazılım kütüphanelerinde adreslenmiş olan endianness (İşlemciler, byte'ları saklarken önemli byte'ın solda veya sağda saklamalarına göre sınınıflandırırlar. Buna endianness denir. Önemli byte'ların solda olduğu sıralamaya big - endian , sağda olduğu sıralamaya little - endian denir. i386 ve klonları litte - endian, Sun sparc, Motorola 68K ve PowerPC big - endian kullanır.) dağıtımlara da uygundur. Veri dizileri, düzenli biçimlenmiş, basit bir şekilde ve kusurlu olmayan dikdörtgen biçimindedir. Ayrıca alt küme oluşumuna izin verir.
NetCDF API'nin yeni 4.0 versionu geliştirilmektedir. Bu versiyon HDF5 veri formatının üzerinde genişletilmiş ve tamamlanmış olacaktır. NetCDF kullanıcıları, daha büyük dosyalar ve çoklu sınırsız boyutlar gibi NetCDF formatı ile kullanışlı olmayan özellikleri HDF dosyaları yaratarak kullanıyor olacaklardır. Geriye dönük uyumluluk eski NetCDF versionlarında desteklenmeye devam edecektir. Birleştirilmiş kütüphaneler ile NetCDF ve HDF5'in istenen ortak karakteristikleri korunacaktır. Onların farklı güçlerinin avantajlarından faydalanılacaktır : Örneğin, NetCDF basitliği ve yaygın kullanımı ve HDF'in performansı ve genelliği (Kullanım alanının çokluğu).

YAZILIM
Erişim Kütüphaneleri :
Yazılım kütüphaneleri, NetCDF dosyalarına okuma- yazma erişimi, metadata ve gerekli dizilerde kodlama kodçözme sağlayan UCAR tarafından tedarik edilmiştir.
Esas kütüphane C'de yazılmıştır ve C. C++ ve fortran uygulamaları için bir API sağlar. Bağımsız bir uyarlama/implementation olan %100 Java ile yazılmış Unidatatarafindan geliştirilen ve korunan ek işlevsellikler eklenen ve esas veri modeli ile genişletilmiştir. C kütüphanelerindeki NetCDF temelli arayüzlere Octave, IDL, Matlab, Ruby, Python, Perl ve R dilleri de dahil edilmiş ve kullanıma hazırdır. API çağrılarının özellikleri, farklı dillerde syntax'ın zorunlu farklılıkları dışında çok küçük karşıtlıklar gösterir. Version 2 için API çağrıları version 3'ten daha farklıdır. Fakat geriye uyumluluk için version 3 tarafından hala desteklenmektedir. Dil desteği kullanan uygulama programcıları dosya yapısı hakkında kaygılanmakla beraber bu format kullanışlı bir açık formattır.

Uygulamalar :

NetCDF dosyalarını kullananların yaptığı ve yazdığı, geniş bir alana yayılan uygulama yazılımlarıdır. Bunlar komut satırı gereçlerinden grafik görüntüleme paketlerine farklılıklar gösterir.
* NetCDF dosyaları için, Unix komut satırı gereçlerinden çoğunlukla kullanılan bir bölümü olan NetCDF Operators(NCO) suiti, Bu suit concatenating (İki karakter stringi birbirine bağlamak/birleştirmek), slicing (Nesne yönelimli programlamada çoğu kez bir altsınıf, üst sınıftan daha çok bilgi tutar. Böylece eğer üst sınıf tipi bir değişkene alt sınıfın bir örneğini tahsis edersek, depolanacak fazla bilgiye yeterli alan kalmaz ve bu sliced off olarak adlandırılır. Nesnelere referans veya işaretleyiciler kullanırken bunun olmamasına dikkat edilmelidir. ), ve average(ortalama) temel yazımlarını içeren netCDF dosyalarının analizi ve manupulasyonu için bir komut alanı sağlar.
* NcBrowse, NetCDF dosya teamüllerinin geniş bir alanı için Java grafikleri, animasyonlar ve 3 boyutlu görüntüleme içeren genel amaçlı bir NetCDF dosya görüntüleyici.
* ncview, NetCDF dosya formatı için görsel bir tarayıcıdır. Genellikle ncview kullanmak kolay ve hızlıdır. Verinin basit görüntüsünü görebilirsin, boyutlar muhtelif uzunlukta görülür, gerçek veri değerlerine bakılabilir, renk haritaları değiştirilebilir, data ters cevrilebilir gibi.
* Panoply, Nasa Goddard Instıtute for Space Studies'de geliştirilen geo-gridded verinin görüntülenmesine odaklanmış bir NetCDF görüntüleyicisidir. Java'da yazılmıştır ve bu yüzden platform bağımsızdır. Her ne kadar ncBrowse ve ncview'le beraber özellikleri üst üste gelsede, Panoply farklı ölçek renk tablolarıyla çalışma yeteneği ve harita izdüşümlerinin geniş türleri ile çalışması nedeniyle ncBrowse ve ncview'dan ayrılır.
* The NCAR Command Language, NetCDF dosyalarında (diğer formatlarla birlikte) veri görüntüleme analizinde kullanılır.
* PyNIO, bir python programlama dili modülüdür. NetCDF içeren veri formatlarına bir tür okuma/yazma erişim izni verir.
* Ferret, okyanusbilimci ve meteorolojistler'e gerekli karmaşık gridded veri kümeleri ve büyük analizler için tasarlanmış bir etkileşimli/interactive bilgisayar görüntüleme ve analiz ortamıdır. Ferret, matematica (bilimsel ve matematiksel alanlarda kullanılan özel bir yazılım) gibi bir çözümleme yaklaşımıdır; yeni değişkenler, veri seti değişkenlerini kapsayan matematiksel açıklamalar gibi etkileşimli biçimde tanımlanabilirler. Hesaplamalar, isteğe bağlı olarak biçim verilmiş belgeler üzerinde uygulanabilir. Grafiklerin tüm dökümanları tek bir komutla üretilir.

Ortam Kullanım :
Genellikle iklimbilim uygulamaları (hava tahmini, iklim değişikliği) ve GIS (Geographic Information System) uygulamalarında kullanılır. Pek çok GIS uygulaması için giriş/çıkış formatı ve genel bilimsel veri değişimi için NetCDF kullanılır. NetCDF internet sitesinden aktarmak gerekirse "NetCDF dizi-yönelimli veri erişimi ve arayüzün gerçekleşimini(implementation) sağlayan kütüphane için bir arayüzdür. NetCDF kütüphanesi hem de bilimsel veri sunumu için makina bağımsız bir formatı tanımlar. "

Paralel NetCDF :
Paralel computing için NetCDF'in bir uzantısı olan Parallel - NetCDF, Argonne Laboratuarlarında ve Northwestern Üniversitesinde geliştirilmiştir. Bu, MPI - IO üzerinde yapılmış, MPI iletişimine I/O uzantısı ve yüksek seviye NetCDF veri yapılarını kullanır. PnetCDF kütüphaneleri çoklu işlemciler arasında dosya okuma - yazma uygulamalarının verimli dağıtımını en iyi şekilde yapabilirler.

NetCDF - Java Ortak Veri Modeli :
NetCDF - Java kütüphanesi halihazırda aşağıdaki dosya formatlarını ve uzaktan erişim protokollerini okur:
BUFR (Geliştirilmeye devam ediliyor.)
CINRAD level II (Çin Radar formatı)
DMSP (Defense Meteorological Satellite Program)
DORADE (Radar Dosya Formatı)
GOES (GOES Ingest and NOAAPORT Interface ) image format
GEMPAK gridded data
GRIB version 1 ve version 2 (tablolar üzerind eçalışma devam ediyor.)
GTOPO 30-sec elevation dataset (USGS)
Hierarchical Data Format (HDF4, HDF-EOS, HDF5, HDF5-EOS)
NetCDF (classic and large format)
NetCDF-4 (built on HDF5)
NEXRAD Radar level 2 and level 3
OpenDAP client/server protocol

Geliştirmede bir sıra vardır. Bunların her birinin NetCDF API'den açıkça erişiminden itibaren NetCDF - Java kütüphanesi bilimsel veri setleri için bir "ortak veri modeli" uygular.
Ortak veri modeli, herbiri diğerinin üzerinde yapılanan ve ardarda eklenen oldukça zengin anlamlar içeren 3 katmandan oluşur.
1- Veri erişim katmanı, sözdizim katmanı da denir. Veri okumayı ele alır.
2- Koordinat sistemi katmanı, veri dizilerinin koordinatlarını belirler. Koordinatlar, bilimsel veriler için tamamen genel bir içeriktir; georeferencing (fiziksel uzayda varoluş) koordinat sisteminin uzmanlığı ve yer bilimi topluluğundaki önemi özellikle açıklanır.
3- Bilimsel veri tipi katmanı, gridler, resimler, nokta verileri ve verinin herbiri için özel yöntemlerin eklendiği verinin bilinen tipini belirler.
Veri erişim katmanının veri modeli (Özet modeli tanımlanan verinin erişimi ve gösterimidir.), esasen NetCDF - 4 veri modeli ile aynı ve NetCDF - 3 veri modelinin genelleştirilmiş halidir.
Koordinat sistem katmanı, CF Metada Conventions (İklim ve tahmin metadata kuralları) kavramlarını genişletir ve tamamlar.
Bilimsel veri tipi katmanı, uzay koordinatında Open Geospatial Consortium (Bir Uluslararası gönüllü uzlaşı standartları organizasyonudur.) veri manipulasyonuna izin verir.
Koordinat sisteminin ve veri tiplerinin tanımlanması devam etmekte fakat kullanıcılar özel işlemler için kendi sınıflarında çalışan plug-in'leri (Bir programa eklenebilen ve yüklendiği programa ek bir kabiliyet kazandıran kısa ve küçük yazılımların genel adı) kullanabilirler.

1 yorum:

ersin.aksoy dedi ki...

Çok başarılı bir derleme. Konuya dair ilgim yeni oluşmuşken sitenizle karşılaşmış olmam büyük şans.

Teşekkürler