注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

阿弥陀佛

街树飘影未见尘 潭月潜水了无声 般若观照心空静...

 
 
 

日志

 
 
关于我

一直从事气象预报、服务建模实践应用。 注重气象物理场、实况场、地理信息、本体知识库、分布式气象内容管理系统建立。 对Barnes客观分析, 小波,计算神经网络、信任传播、贝叶斯推理、专家系统、网络本体语言有一定体会。 一直使用Java、Delphi、Prolog、SQL编程。

网易考拉推荐

scala NetCDF4格点场建立测试  

2015-05-16 20:59:08|  分类: netcdf |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
package nc4.test

import java.io.ByteArrayInputStream
import java.util.ArrayList

import ucar.ma2.{ArrayDouble, ArrayInt, ArrayShort, DataType}
import ucar.nc2.{NetcdfFileWriter, _}
import ucar.nc2.write.Nc4ChunkingStrategy
/**
* Created by hxf on 15-5-14.
*/
object Nc4Test {
def main(args: Array[String]): Unit = {
val ncFnm = "/wk/TestNc4.nc"
makeNcFileFromNcml(ncFnm)
}
def makeNcFileFromNcml(ncFnm: String) {
val version = NetcdfFileWriter.Version.netcdf4
val ncml = ncmlTemp
val inputStream = new ByteArrayInputStream(ncml.getBytes("UTF-8"))
val strategy = ucar.nc2.write.Nc4Chunking.Strategy.standard
val chunker = Nc4ChunkingStrategy.factory(strategy, 5, true)
val w = NetcdfFileWriter.createNew(NetcdfFileWriter.Version.netcdf4, ncFnm,chunker)

val r = w.addGroup(null,"/")
r.addAttribute(new Attribute("centerLat", "23.0039"))
r.addAttribute(new Attribute("centerLon", "113.355"))
r.addAttribute(new Attribute("lowerLeftLat", "19.998900000000003"))
r.addAttribute(new Attribute("lowerLeftLon", "109.85000000000001"))
r.addAttribute(new Attribute("gridsize", "0.01"))
r.addAttribute(new Attribute("description", "radar QPE from Z-R with max reflective"))
r.addAttribute(new Attribute("history", "Created Wed May 13 08:18:12 2015"))
r.addAttribute(new Attribute("source", "PWSC of CMA"))

val timeDim = w.addDimension(r, "time", 1)
val levelDim = w.addDimension(r, "level", 21)
val latDim = w.addDimension(r, "lat", 601)
val lonDim = w.addDimension(r, "lon", 701)
val dims = new ArrayList[Dimension]
dims.add(timeDim)
dims.add(levelDim)
dims.add(latDim)
dims.add(lonDim)

val time = w.addVariable(r, "time", DataType.DOUBLE, "time")
time.addAttribute(new Attribute("units", "hours since 2015-05-13 08:00:00"))
time.addAttribute(new Attribute("calendar", "gregorian"))
val timeVal = new ArrayDouble.D0
timeVal.set(1.0)

val level = w.addVariable(r, "level", DataType.INT, "level")
level.addAttribute(new Attribute("units", "m"))
val levelVal = new ArrayInt.D1(21)
for(i<-0 until 21) levelVal.set(i,i)

val latitude = w.addVariable(r, "latitude", DataType.DOUBLE, "lat")
latitude.addAttribute(new Attribute("units", "degrees_north"))
val latlVal = new ArrayDouble.D1(601)
for(i<-0 until 601) latlVal.set(i,i*0.1)

val longitude = w.addVariable(r, "longitude", DataType.DOUBLE, "lon")
longitude.addAttribute(new Attribute("units", "degrees_east"))
val lonlVal = new ArrayDouble.D1(701)
for(i<-0 until 701) lonlVal.set(i,i*0.1)

val refl: Variable = w.addVariable(null, "radarRefl", DataType.SHORT, dims)
refl.addAttribute(new Attribute("units", "dBz"))
val reflVal = new ArrayShort.D4(1,21,601,701)
for (
k <-0 until 9;
i <- 0 until 601;
j <- 0 until 701) {
reflVal.set(0,k,i, j, 0)
}
w.create
w.write(time, timeVal)
w.write(level, levelVal)
w.write(latitude, latlVal)
w.write(longitude, lonlVal)
w.write(refl, reflVal)
w.close
}
  评论这张
 
阅读(259)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017