⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 globetempdata.java

📁 openmap java写的开源数字地图程序. 用applet实现,可以像google map 那样放大缩小地图.
💻 JAVA
字号:
// **********************************************************************// // <copyright>// //  BBN Technologies//  10 Moulton Street//  Cambridge, MA 02138//  (617) 873-8000// //  Copyright (C) BBNT Solutions LLC. All rights reserved.// // </copyright>// **********************************************************************// // $Source:// /cvs/distapps/openmap/src/openmap/com/bbn/openmap/layer/plotLayer/GLOBETempData.java,v// $// $RCSfile: GLOBETempData.java,v $// $Revision: 1.2.2.2 $// $Date: 2005/08/09 21:17:54 $// $Author: dietrick $// // **********************************************************************package com.bbn.openmap.layer.plotLayer;import java.text.DecimalFormat;import java.text.ParseException;import java.util.Enumeration;import java.util.Hashtable;import java.util.NoSuchElementException;import java.util.StringTokenizer;public class GLOBETempData extends GLOBEData {    private static float NO_VALUE = -99;    private Hashtable site_table = new Hashtable();    public float overall_min_year_ = Float.NaN;    public float overall_max_year_ = Float.NaN;    public float overall_min_temp_ = Float.NaN;    public float overall_max_temp_ = Float.NaN;    public GLOBETempData() {        super();    }    /*     * Data Format:     *      * Air Temperature: Field 1 = AT Field 2 = GLOBE phase number (1     * or 2) Field 3 = Site number Field 4 = Time the data was     * reported, YYYYMMDD where YYYY = Calendar year MM = Calendar     * month (starting with 1 = January) DD = Day of month (starting     * with 1) Field 5 = Time the data was sampled, YYYYMMDDHH where     * YYYY = Calendar year MM = Calendar month (starting with 1 =     * January) DD = Day of month (starting with 1) HH = Hour of day     * (00-23) Field 6 = Decimal year Field 7 = Measurement location     * latitude Field 8 = Measurement location longitude (+ = East, - =     * West) Field 9 = Measurement location elevation (meters above     * sea level) Field 10 = Current air temperature (degrees Celsius)     * [Missing value = -99.0] Field 11 = Daily maximum air     * temperature (degrees Celsius) [Missing value = -99.0] Field 12 =     * Daily minimum air temperature (degrees Celsius) [Missing value =     * -99.0]     *      * Example: AT 1 1 19961218 1996121814 1996.96334 44.1281 -68.8747     * 14 18 22 -2     *       */    protected void parseDataFromStream(String line) {        StringTokenizer tokenizer = new StringTokenizer(line);        DecimalFormat dec_format = new DecimalFormat();        try {            for (int i = 0; i < 2; i++)                tokenizer.nextToken();            /*int site_number = */dec_format.parse(tokenizer.nextToken())                    .intValue();            ;            for (int i = 0; i < 2; i++)                tokenizer.nextToken();            float time = dec_format.parse(tokenizer.nextToken()).floatValue();            float latitude = dec_format.parse(tokenizer.nextToken())                    .floatValue();            float longitude = dec_format.parse(tokenizer.nextToken())                    .floatValue();            tokenizer.nextToken(); // ignore Field 9            float current_temp = dec_format.parse(tokenizer.nextToken())                    .floatValue();            //          float max_temp =            //              dec_format.parse( tokenizer.nextToken() ).floatValue();            //          float min_temp =            //              dec_format.parse( tokenizer.nextToken() ).floatValue();            // Now process the data we just parsed.            GLOBESite site = findSite(latitude, longitude);            if (current_temp != NO_VALUE) {                site.addCurrentTemp(time, current_temp);                checkLimits(current_temp, time);            }            //          if ( max_temp != NO_VALUE )            //              { site.addMinTemp(time, max_temp); }            //          if ( min_temp != NO_VALUE )            //              { site.addMinTemp(time, min_temp); }            //          System.out.println(" site: " + site_number            //                             + " time: " + time            //                             + " lat: " + latitude            //                             + " lon: " + longitude            //                             + " t1-3: " + current_temp            //                             + " (" + max_temp            //                             + "," + min_temp + ")" );        } catch (NoSuchElementException e) {            System.err.println(e + ": " + e.getMessage());        } catch (ParseException e) {            System.err.println(e);        }    }    /**     * See if these values for temp and year are outside of our     * current notion of how large our data space is.     * <p>     *      * @param temp     * @param year     */    private void checkLimits(float temp, float year) {        if (Float.isNaN(overall_max_temp_) || temp > overall_max_temp_)            overall_max_temp_ = temp;        if (Float.isNaN(overall_min_temp_) || temp < overall_min_temp_)            overall_min_temp_ = temp;        if (Float.isNaN(overall_max_year_) || year > overall_max_year_)            overall_max_year_ = year;        if (Float.isNaN(overall_min_year_) || year < overall_min_year_)            overall_min_year_ = year;    }    private GLOBESite findSite(float latitude, float longitude) {        GLOBESite site = new GLOBESite(latitude, longitude);        GLOBESite hashed_site = (GLOBESite) site_table.get(site.hash());        if (hashed_site == null) {            //      System.out.println("hash_miss: " + latitude + " " +            // longitude);            site_table.put(site.hash(), site);            hashed_site = site;        }        return hashed_site;    }    public Enumeration getAllSites() {        return site_table.elements();    }    /*     * public static void main (String argv[]) { try {     * System.out.println("Getting URL: " + temp_data_source_);     * GLOBETempData datafile = new GLOBETempData();     * datafile.loadData(); } catch (IOException e) {     * System.err.println(e); } }     */}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -