ฉันชอบNetCDFสำหรับข้อมูลต่อเนื่อง / อาเรย์ (เช่น rasters) ข้อดีสำหรับ NetCDF คือ:
- NetCDF อธิบายตนเอง (กล่าวคือมีคำจำกัดความของข้อมูลผ่านส่วนหัวของไฟล์) ดังนั้นคุณไม่จำเป็นต้องจัดหาไฟล์ข้อมูลเมตารอง
- NetCDF4 อนุญาตให้จัดเก็บข้อมูล n-มิติ (โดยใช้รูปแบบข้อมูล HDF5 บนดิสก์ซึ่งเป็นโบนัสเพราะจะช่วยให้ไฟล์มีขนาดใหญ่เท่าที่ระบบปฏิบัติการของคุณสามารถจัดการได้) สิ่งนี้มาพร้อมกับการบีบอัดข้อมูลที่สมเหตุสมผลและการเข้าถึงข้อมูลอย่างรวดเร็ว โปรดทราบว่า NetCDF3 ไม่สนับสนุนข้อมูล n-มิติและมีข้อ จำกัด ขนาดไฟล์ประมาณ 2GB บนระบบ 32 บิต
- NetCDF เป็นรูปแบบเปิดดังนั้นการเข้าถึงข้อมูลโดยทั่วไปไม่ใช่ปัญหาเช่นกันผ่านทางห้องสมุดทั่วไป ตัวอย่างเช่นในงูหลามมันง่ายพอที่จะอ่านจากสกิปซี่ในส่วนของข้อมูล:
from scipy.io import netcdf
f = netcdf.netcdf_file('source.nc')
print(nc.dimensions) #take a look at the dimensions of the data
print(nc.variables) #A dictionary containing all the variables
nc.variables["some_data"].dimensions #The dimensions this variable is in, e.g. lat, lon
out_array = nc.variables["some_data"].data
f.close() #and we're done
ข้อเสียเพียงอย่างเดียวของ NetCDF4 ที่ฉันเห็นคือการสนับสนุนที่ไม่ยอดเยี่ยมในแพ็คเกจ GIS มาตรฐานเช่น ArcGIS และ QGIS (แม้ว่าฉันจะรักที่จะได้รับการแก้ไข!)
แก้ไขแพ็คเกจอื่น ๆ ที่รองรับ NetCDF
ภาษาการเขียนโปรแกรมมาตรฐานบางภาษาที่รองรับ NetCDF (แม้ว่าจะยุติธรรมสิ่งใดก็ตามที่สามารถอ่าน HDF สามารถอ่าน NetCDF4):
สำหรับผู้ใช้คณิตศาสตร์และสถิติคุณมี:
โดยเฉพาะใน GIS:
- GDALจะแปลงข้อมูลให้คุณ
- FMEเช่นเดียวกัน
- ArcGISรองรับ NetCDF (แม้ว่าจะไม่ใช่ระดับการสนับสนุนที่ดีที่สุดในประสบการณ์ของฉัน)
- มีปลั๊กอิน QGISในการพัฒนา
ถ้าคุณต้องการดูไฟล์ NetCDF อย่างรวดเร็วฉันจะใช้ Panoply ข้ามแพลตฟอร์มจาก NASA และถ้าคุณกำลังสนใจในการเพิ่มเติม UCAR Unidata มีรายชื่อของซอฟต์แวร์