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

阿弥陀佛

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

 
 
 

日志

 
 
关于我

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

网易考拉推荐

scala with java BufferedImage  

2015-01-31 22:59:08|  分类: Scala |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
package figa

import java.awt.Color
import java.awt.image.BufferedImage
import java.io.File
import javax.imageio.ImageIO
import java.text.DecimalFormat
import Utils._
import scala.io.Source
import com.cra.figaro.language._
import com.cra.figaro.library.compound._
import com.cra.figaro.algorithm.factored.beliefpropagation._
/**
* 雷达数据处理
* Created by 何险峰 on 2015-1-29.北京
*/

object RadaDat {
val fnm="/wk/data/rada/20130701/cr_int1_Z9010_20130701_000.txt"
val path = "/wk/data/rada/20130701/cr_int1_Z9010_20130701_000.txt"
val rstFnm = "/wk/data/rada/calcu.txt"
val pngFnm = "/wk/data/rada/test.png"
val nCol = 552
val nRow = 424

def main(args: Array[String]) {
val t1 = System.currentTimeMillis()
val d2 = rada2d2(fnm)
mk_png(pngFnm,d2)
println("take times(ms): " + (System.currentTimeMillis() - t1))
}

def transpose[T:ClassTag](xss : Array[Array[T]])={
for (i <- Array.range(0, xss(0).length)) yield for (xs <- xss) yield xs(i) //矩阵转置
}
 def rada2d2(fnm : String)={
val file = Source.fromFile(fnm)
val arrInts = file.mkString.split("\\s+").filter(_.length > 0).map(e=>e.toInt).grouped(nCol).toArray
file.close()
transpose(transpose(arrInts).map(row=>row.reverse))//矩阵转置, 使二维数据符合在图片上的位置:从西向东,从南向北
}
//产生图片
def mk_png(fnm:String,d2 : Array[Array[Int]]){
def i2c(r:Int,g:Int,b:Int):Int={
new Color(r,g,b).getRGB
}
val colors = Array[Int](
i2c(0,0,0),i2c(170,170,170),i2c(118,118,118),i2c(0,254,254),i2c(0,174,174),
i2c(0,254,0),i2c(0,142,0),i2c(254,0,254),i2c(174,50,124),i2c(0,0,254),
i2c(50,0,150),i2c(254,254,0),i2c(254,170,0),i2c(254,0,0),i2c(174,0,0),i2c(254,254,254)
)
val d1 = d2.flatten.map(c => colors(c))
val img= new BufferedImage(nCol,nRow,BufferedImage.TYPE_INT_RGB)
img.setRGB(0,0,nCol,nRow,d1,0,nCol) //设置RGB
ImageIO.write(img, "png", new File(fnm)) //写图片
}
//产生雷达文本矩阵(无空格分隔)
def mk_matStr(mat : Array[Array[Int]])={
mat.map(r=>r.mkString("")).mkString("\n")
}
}
  评论这张
 
阅读(251)| 评论(0)
推荐 转载

历史上的今天

评论

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

页脚

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