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

阿弥陀佛

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

 
 
 

日志

 
 
关于我

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

网易考拉推荐

使用IDV平滑格点场算法前需要使用ucar.visad.Utils.makeField  

2014-09-04 23:14:55|  分类: IDV |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

val vals_ff= ucar.visad.Util.makeField(lon0.toFloat, (lon0 + (nx-1)*step).toFloat, nx, (lat0 - (ny-1)*step).toFloat, lat0.toFloat, ny, 0.0f, "degree")
val g2 = ucar.unidata.data.grid.GridUtil.smooth(vals_ff, "GWFS").asInstanceOf[visad.FlatField]
========================================================================
  /**
   * 平滑处理
   **/
  def mkSmooth(vals_ff :  visad.FlatField, b:ucar.ma2.Array )={
    import ucar.unidata.data.grid.GridUtil
    val f =  Array.ofDim[Float](1,b.getSize.toInt)
    f(0) = b.copyTo1DJavaArray.asInstanceOf[Array[Float]]
    vals_ff.setSamples(f, false)
    // SMOOTH_GAUSSIAN,SMOOTH_5POINT,SMOOTH_9POINT,SMOOTH_CRESSMAN
    //  or "SM5S", "SM9S", "GWFS" , "CRES"
    val g2 = ucar.unidata.data.grid.GridUtil.smooth(vals_ff, "GWFS").asInstanceOf[visad.FlatField]
    val samples = g2.getFloats
    val shp = b.getShape
    val arr = ucar.ma2.Array.factory(DataType.FLOAT, shp, samples(0))
    arr
  }


/**
     * this makes a empty flat field with the given lat/lon bounds and lengths, the given fill value and the unit
     *
     * @param lon1 longitude 1
     * @param lon2 longitude 2
     * @param length1 number of lon points
     * @param lat1 lat 1
     * @param lat2 lat 2
     * @param length2 number of lat points
     * @param fill the fill value for the range
     * @param unitString the unit
     *
     * @return the field
     *
     * @throws RemoteException on badness
     * @throws VisADException on badness
     */
    public static FlatField makeField(float lon1, float lon2, int length1,
                                      float lat1, float lat2, int length2,
                                      float fill, String unitString)
            throws VisADException, RemoteException {
        Unit unit = parseUnit(unitString);
        FunctionType type =
            new FunctionType(RealTupleType.SpatialEarth2DTuple,
                             getRealType(unit));
        Linear2DSet domain = new Linear2DSet(type.getDomain(), lon1, lon2,
                                             length1, lat1, lat2, length2);

        FlatField field = new FlatField(type, domain);
        float[][] data  = new float[1][length1 * length2];
        for (int i = 0; i < length1; i++) {
            for (int j = 0; j < length2; j++) {
                data[0][i + length1 * j] = fill;
            }
        }
        field.setSamples(data, false);
        return field;


    }
  评论这张
 
阅读(341)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

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

页脚

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