pyshadoz是一个纯python包,用于读写nasa南半球附加的ozonesondes(shadoz)数据。
pyshadoz的Python项目详细描述
概述
pyshadoz是一个读取和写入NASA Southern Hemisphere ADditional OZonesondes(shadoz)数据的纯python包。
安装
安装pyshadoz最简单的方法是通过python pip实用程序:
pip install pyshadoz
要求
- Python3。与Python2.7一起使用
- virtualenv
依赖性
依赖项列在requirements.txt中。 依赖项在pyshadoz安装期间自动安装。
安装pyshadoz
# setup virtualenv virtualenv --system-site-packages -p python3 pyshadoz cd pyshadoz source bin/activate # clone codebase and install git clone https://github.com/WMO-ET-WDC/pyshadoz.git cd pyshadoz python setup.py build python setup.py install
运行
# help pyshadoz --help # get version pyshadoz --version # parse a single shadoz file pyshadoz -f </path/to/shadoz_file> # add verbose mode pyshadoz -v -f </path/to/shadoz_file> # parse a directory of shadoz files pyshadoz -d </path/to/directory> # parse a directory of shadoz files recursively pyshadoz -r -d </path/to/directory>
使用api
frompyshadozimportSHADOZ# read SHADOZ datawithopen('/path/to/directory')asff:s=SHADOZ(ff)forkey,valueins.metadata:print(key,value)print(s.data_fields)print(s.data_fields_units)print(len(s.data))# get index of a data fieldindex=s.get_data_index('W Dir')# get index of a data field and data field unitindex=s.get_data_index('W Dir','deg')# get all datadata=s.get_data()# get data by indexdata=s.get_data(by_index=index)# get all data by fielddata=s.get_data('W Spd')# get all data by field and unitdata=s.get_data('O3','ppmv')# read SHADOZ data using convenience functions# parse files=load('/path/to/shadoz_file.dat')# returns SHADOZ object# parse stringwithopen('/path/to/shadoz_file.dat')asff:shadoz_string=ff.read()s=loads(shadoz_string)# returns SHADOZ object# write SHADOZ datas=SHADOZ()# build metadata dicts.metadata['NASA/GSFC/SHADOZ Archive']='http://croc.gsfc.nasa.gov/shadoz'....# build data fieldss.data_fields=['Time','Press','Alt','Temp','RH','O3','O3','O3','W Dir','W Spd','T Pump','I O3','GPSLon','GPSLat','GPSAlt']# build data field unitss.data_fields_units=['sec','hPa','km','C','%','mPa','ppmv','du','deg','m/s','C','uA','deg','deg','km']# build datas.data=[[0,1013.85,0.01,24.22,71.0,32.91,32.91,0.0,32.91,5.29,32.91,9000.0,-155.049,19.717,0.041],[0,1013.66,0.012,23.89,70.0,32.79,32.79,0.049,32.79,5.01,32.79,9000.0,-155.049,19.717,0.045]]# serialize data to fileshadoz_data=s.write()withopen('new_shadoz_file.dat','w')asff:ff.write(shadoz_data)
开发
运行测试
# install dev requirements pip install -r requirements-dev.txt # run tests like this: python pyshadoz/tests/run_tests.py # or this: python setup.py test# measure code coverage coverage run --source=pyshadoz -m unittest pyshadoz.tests.run_tests coverage report -m