用于创建netcdf文件的dsl

Pupp的Python项目详细描述


用于创建netcdf文件的dsl。下面是一个简单的示例:

frompupimport*classTest(NetCDF):# NC_GLOBAL attributes go herehistory='Created for a test'# dimensions need to be set explicitly only when they# have no variable associated with themdim0=Dimension(2)# variables that don't specify dimensions are assumed to# be their own dimensiontime=Variable(range(10),record=True,units='days since 2008-01-01')# now a variable with dimensions (time,)temperature=Variable(range(10),(time,),units='deg C')Test.save('simple.nc')

这将生成以下netcdf文件:

netcdf simple {
dimensions:
    dim0 = 2 ;
    time = UNLIMITED ; // (10 currently)
variables:
    int time(time) ;
        time:units = "days since 2008-01-01" ;
    int temperature(time) ;
        temperature:units = "deg C" ;

// global attributes:
        :history = "Created for a test" ;
data:

 time = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ;

 temperature = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ;
}

将其与使用公共netcdf执行相同操作所需的代码进行比较 库:

f=netcdf_file("simple.nc","w")f.history="Created for a test"f.createDimension("dim0",2)f.createDimension("time",None)time=f.createVariable("time","i",("time",))time.units="days since 2008-01-01"time[:]=range(10)temperature=f.createVariable("temperature","i",("time",))temperature.units="deg C"temperature[:]=range(10)

默认情况下,它使用pupyere创建文件,但这可能会被重载;我们 例如,可以使用netcdf4模块,它允许我们指定组:

fromnetCDF4importDatasetclassTest(NetCDF):loader=Dataset...foo=Group(dim=Dimension(10),var=Variable(range(10)),...)Test.save('simple.nc',format='NETCDF4')

更改日志:

0.1.8:Ensure record dimensions are created first.
0.1.7:Convert strings to array of chars.
0.1.6:Fix bug in dimension name.
0.1.5:Added support for Groups when using netcdf4.
0.1.4:Added support for masked arrays.
0.1.3:Pass keyword arguments in save() to the loader.
0.1.2:Improved optional loader detection.
0.1.1:Added pupynere dependency.
0.1:Initial release.

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Spring freemarker多模板加载程序路径   在java插件中从控制台获取输入   java在包中创建继承类   网页抓取Java Jsoup网页抓取   java在线程内创建一个对象,而true条件具有相同的引用   java如何根据空格数拆分字符串   java新的安卓 studio更新中的配置文件“app”是什么?   java在将ArrayList写入/读取到文件时出现奇怪的问题   java Reg替换文本块第一次出现+最后一次出现   java当我单击任何RecyclerView列表项时,如何在MainActivity的EditText中显示特定的单击项?   JAVA XML删除节点仅删除第一个外观   java如何在数组中查找特定值   java SVG/矢量图形对象布尔运算(并集、交集、减法)   java在Android中创建线程需要多长时间   尝试从JBOSS联系Oracle LDAP服务器时发生java连接重置异常   java基于参数获取特定的实现实例   使用java就地修改文件内容   java MonetaryException:未加载MonetaryAmountsSingletonSpi   java接受用户的不同输入并使其触发完全相同的代码段的最短方法是什么   Spring 3.2.8应用程序中未找到java HTTP 404错误