누구나 과학 데이터를 저장하는 방법으로 NetCDF 및 HDF5를 사용하여 충분한 경험을 얻었습니까?과학 데이터를 저장하기위한 NetCDF 대 HDF5에 대한 의견?
저는 HDF5를 사용했으며 Java를 통해 읽고 쓰기를 원합니다.하지만이 인터페이스는 본질적으로 혼란스러운 C 라이브러리의 래퍼이므로 NetCDF는 흥미롭게 보입니다.하지만 거의 알지 못합니다.
편집 : 내 응용 프로그램은 데이터 로깅 전용이며 따라서 자체 설명 형식의 파일을 얻습니다. 나에게 중요한 기능은 임의의 메타 데이터를 추가 할 수 있고, 바이트 배열에 추가하기위한 빠른 쓰기 권한이 있으며, 단일 쓰기/다중 판독기 동시성 (강력히 권장되지만 반드시 필요하지는 않음)을 제공 할 수 있습니다 .NetCDF 문서에는 SWMR이 있지만 돈이 없습니다 두 명의 작가가 동일한 파일을 동시에 열 수 있다는 것을 보장하는 메커니즘을지지하는지 여부에 대해서는 말하지 않습니다. 나는 HDF5의 계층 적 측면을 좋아한다. (특히 은 direct-acyclic-graph 계층을 좋아한다. "일반"파일 시스템과 같은 계층 구조보다 훨씬 융통성이있다.) NetCDF 문서를 지금 읽고있다. 파일 당 데이터 세트는 아마 저를 위해 작동하지 않을 것입니다. . NetCDF-Java가 netCDF의-4 파일에서 읽어하지만 계층 그룹을 지원하지 않는 이놈을 netCDF의-3 파일에서 기록처럼 :(
갱신 — 보인다
갱신 2009 7 월 14. : Java에서 HDF5로 인해 정말 화를 내기 시작했습니다. 사용할 수있는 라이브러리는 그리 좋지 않으며 Java 추상화 레이어 (복합 데이터 유형)와 관련하여 몇 가지 주요 걸림돌이 있습니다. C의 훌륭한 파일 형식이지만 난 잃어.> :
추신 : HDF5는 PyTables가있는 Python에서 Java보다 사용하기가 훨씬 쉽습니다. –
불행히도 Java 사용자의 경우 netCDF 및 HDF5는 모두 C 또는 Fortran 사용자를 위해 C로 개발됩니다. 파이썬과 같은 대부분의 다른 API는 C 계층 위에 구축되어 있습니다. –
@EdwardHartnett - 저는 그 인수를 구입하지 않습니다. 확실히 그것은 당신이 멋진 Java 기능을 무료로 얻지는 못했음을 의미하지만, 사람들은 Python에서 유용한 API를 만들기 위해 급락했습니다. 누군가 Java에서 그렇게 할 수있는 이유가 없습니다. (사실, 나는 이전에이 회사에서 2009 년에이 질문을 게시했지만 그 코드에 액세스 할 수 없었습니다.) –