문제

저는 현재 대량의 반복 데이터를 다루는 몇 가지 프로젝트를 진행 중입니다(또는 적어도 계획 중입니다).스프레드시트나 데이터베이스에서는 잘 작동하지만 XML에서는 좋지 않은 데이터 종류입니다.:)

NetCDF는 파일 형식에 대한 훌륭한 옵션인 것 같습니다.그러나 내 작업은 C#으로 이루어졌으며 사용 가능한 "공식적인" NetCDF 구현이 없습니다.IronPython과 함께 사용할 수 있는 "공식" Python 버전이 있습니다.또 다른 옵션은 CodePlex의 "NetCDF Library for .Net"이지만 꽤 조용해 보입니다(http://www.codeplex.com/netcdf).

이 라이브러리 중 하나를 사용하여 작업한 사람이 있습니까?추천해 주실 수 있나요?

도움이 되었습니까?

해결책

첫째, NetCDF가 올바른 선택이라고 확신하시나요?많은 양의 데이터를 읽어야 하고 이미 NetCDF를 지원하는 다른 프로그램과 상호 작용하고 싶다면 이 프로그램이 아마도 좋은 선택일 것입니다.대규모 다차원 배열을 지원하는 표준 파일 형식과 잘 지원되는 파일 형식은 그리 많지 않습니다.그러나 C#에서 파일을 읽고 쓰기만 하려는 경우에는 그다지 좋은 선택이 아닐 수 있습니다.

저는 "클래식" NetCDF 파일 형식을 좋아합니다.이는 작고 매우 단순하지만 다양한 종류의 일반적인 다차원 구조화된 데이터를 지원할 만큼 충분히 유연합니다.클래식 NetCDF에 대한 완전한 파서를 작성하는 데 하루밖에 걸리지 않았고, 클래식 NetCDF 파일의 잘 구성된 특수 사례를 출력하는 프로그램을 작성하는 데도 한 시간 밖에 걸리지 않았습니다.순수 C# NetCDF 라이브러리를 직접 구현할 수 있으며 그다지 문제가 되지 않습니다.필요한 기능만 구현하여 쉽게 시작할 수 있습니다. 사양은 다음과 같습니다.

불행하게도 NetCDF-4는 데이터 형식으로 HDF-5를 사용하기로 결정했습니다.이는 많은 복잡성을 추가하고 다른 언어로 완전한 NetCDF 파서를 작성하는 것을 훨씬 더 어렵게 만듭니다.HDF-5는 매우 범용적이며 제 생각에는 지나치게 엔지니어링되었습니다. 너무 많은 사람들에게 너무 많은 것을 제공하려고 합니다.단위 테스트를 작성하는 데 한 달을 소비할 계획이 아니라면 직접 작업하는 것을 권장하지 않습니다.C#에서 netCDF-4/HDF-5를 사용해야 하는 경우 유일한 현실적인 옵션은 SWIG 등을 사용하여 C 라이브러리를 래핑하는 것입니다.

Python용 NetCDF는 C 코드를 둘러싼 래퍼일 뿐이므로 그다지 도움이 되지는 않습니다.래핑된 C 라이브러리를 사용하려는 경우 Python을 중간 계층으로 사용하는 대신 C# 래퍼를 작성하는 것이 좋습니다.

다른 팁

이 주제에 대해 Google에서 검색했을 때 이것이 최고의 답변이었기 때문에 지금 이것을 추가하고 있습니다.


도착 예정 시간 아래 답변에 따르면 현재 사용 가능한 또 다른 Microsoft NetCDF 라이브러리가 있습니다.

https://www.nuget.org/packages/SDSLite

과학 데이터세트 라이트 1.4.0

이것은 netCDF, CSV 및 TSV 파일을 조작하기 위한 크로스 플랫폼 라이브러리입니다.


이 질문은 원래 질문되고 답변되었으므로 Microsoft는 NetCDF를 지원하는 Scientific DataSet Library를 출시했습니다.

http://research.microsoft.com/en-us/downloads/ccf905f6-34c6-4845-892e-a5715a508fa3/

프로젝트 설명

SDS 라이브러리를 사용하면 .Net 개발자가 과학적 모델링에서 매우 일반적인 스칼라, 벡터, 행렬 및 다차원 그리드를 쉽게 읽고 쓰고 공유할 수 있습니다.CSV, NetCDF 및 기타 파일 형식을 지원합니다.

라이브러리를 사용하는 프로그램은 관련 데이터 및 관련 메타데이터를 간단한 자체 설명 패키지에 저장합니다.라이브러리에는 일련의 유틸리티 및 패키지가 함께 제공됩니다.sds 명령줄 유틸리티, DataSet Viewer 애플리케이션 및 Microsoft Excel 2007(및 이후 버전)용 추가 기능.자세한 내용은 릴리스 페이지를 참조하세요.

이제 Microsoft는 NuGet을 통해 사용할 수 있는 netCDF용 최신 라이브러리를 출시했습니다.

https://www.nuget.org/packages/SDSLite

과학 데이터세트 라이트 1.4.0

이것은 netCDF, CSV 및 TSV 파일을 조작하기 위한 크로스 플랫폼 라이브러리입니다.

프로젝트에서는 ikvm을 사용하여 C#에서 ucar netcdf 구현을 사용하고 있습니다.IKVM을 사용하면 Java VM을 사용하지 않고도 Java 프로젝트를 .Net 라이브러리로 '변환'할 수 있습니다.성능 검사는 수행하지 않았지만 C#에서 netcdf를 얻는 간단한 방법입니다 :).

http://www.ikvm.net/stories.html

http://www.unidata.ucar.edu/downloads/netcdf/netcdf-java-4/index.jsp

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top