国产成人av网站网址-国产成人av无码精品-国产成人av无码精品天堂-国产成人av无码片在线观看-国产成人av无码一区二区三区不卡-国产成人av无码永久免费

首頁 新聞中心 技術博客

使用java讀取遙感影像特征值

發布時間:2021-11-18 23:23:53   瀏覽量:3841   作者:GIS前沿

小編研究了一下之前學習的java,打開似曾相識的idea,想到在學校老師叫我們實現的一個編程作業,讀取遙感波段圖像的特征值(最值、中值、眾數、平均值、標準差之類的)。眾所周知,遙感波段數據就是一個二維數組,里面存儲的是每一個像元的DN值(灰度值也叫像元值),讀取圖像的特征值就是統計這些DN值的特征值。

為了讓運算量少一點,小編提取了Landsat5 TM數據的3波段和4波段的一個矩形柵格,像元數量是64*30,那么最棘手的問題就是怎么將這些像元值讀取到一個數組里面,我們想到使用arcmap里面的【轉換工具】|【從柵格轉出】|【柵格轉Ascll】,我們打開轉換出來的其中一個Ascll.TXT文件如下圖所示:

我們主要的操作對象是第7行開始的這64*30個整數。






package 實習;

import java.io.*;

import java.lang.annotation.ElementType;

import java.nio.charset.Charset;

import java.time.temporal.Temporal;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

public class 讀取遙感圖像 {
public static void main(String[] args) throws IOException {//創建一個文件對象    int[] a = 讀入像元值(new File("D:\\桌面\\3波段.txt"));//存放波段3的ASCLL碼值路徑    int[] b = 讀入像元值(new File("D:\\桌面\\4波段.txt"));//存放波段4的ASCLL碼值路徑    int[] C = 復制數組(a);    int[] D = 復制數組(b);    NDVI(C, D, new File("D:\\桌面\\4波段.txt"));    double[] A = 統計特征值(a, "D:\\桌面\\3波段.txt");//對數組a進行的計算,并且傳回了平均數和標準差    double[] B = 統計特征值(b, "D:\\桌面\\4波段.txt");//對數組b進行了計算并且傳回了平均數和標準差    多波段圖像統計(C, D, A, B);}public static int[] 復制數組(int[] a) {    int[] C = new int[a.length];    for (int i = 0; i < a.length; i++) {        C[i] = a[i];    }    return C;}static int w = 0;//用來控制是否追加字符用的public static int[] 讀入像元值(File q) throws IOException {    BufferedReader b = new BufferedReader(new FileReader(q));    StringBuffer buffer = new StringBuffer();//Stringbuffer是動態字符串數組,可以放很多字符串    String value;    int a = -7;//統計行數    do {        value = b.readLine();//循環一次就保存一行字符串(代表著一行像元值)        a++;//保存柵格的行數        if (a >= 0 && value != null)//第7行開始讀取            buffer.append(value);//append()是往動態字符串添加新的字符串,每循環一次存一行,兩行之間有空格    } while (value != null);    String[] temp = buffer.toString().split(" ");    int[] number = new int[temp.length]; //temp里面的N個字符串代表所有的像元值    if (w == 0) {        FileWriter writer = new FileWriter("D:\\桌面\\遙感圖像統計值.txt");//第一次寫出直接清空之前的文件內容        writer.write(q + "有" + a + "行," + temp.length / a + "列像元,一共" + temp.length + "個像元。" + "\n");        writer.close();    } else {        FileWriter writer = new FileWriter("D:\\桌面\\遙感圖像統計值.txt", true);//第二次寫出則追加到之前的文本        writer.write(q + "有" + a + "行," + temp.length / a + "列像元,一共" + temp.length + "個像元。" + "\n");        writer.close();    }    w++;//控制是否是第一次輸入    for (int i = 0; i < temp.length; i++) {        if (Integer.parseInt(temp[i]) >= 0)            number[i] = Integer.parseInt(temp[i]);//字符串數組轉換成整數數組
// if (i % ((temp.length / a)) == 0)

// System.out.print("\n" + “第” + (i / (temp.length / a) + 1) + “行:”);

// System.out.print(number[i] + " ");

    }    return number;}public static double[] 統計特征值(int[] b, String a) throws IOException {    int e;//計算中位數用的    int k = b.length;//所有大于0的像元個數    int t = 0;//用于輔助比較各個像元值出現的次數    int s = 0;//存放出現次數最多的像元值(眾數)    int sum = 0;//統計所有享元年值總和    for (int i = 0; i < b.length; i++) {//這里將值為-9999都篩選掉了        sum += b[i];    }    for (int i = 0; i < k; i++) {//比較n-1次就夠了        for (int j = 0; j < k - 1; j++) {//每一個數的比較都比上一次少一次            if (b[j] > b[j + 1]) {//如果前面一個比后面一個大,那么大的都往后退                int temp = b[j];                b[j] = b[j + 1];                b[j + 1] = temp;//大的值都給了后面            }        }    }    int[] y = new int[(b[k - 1]) + 1];//存放出現的灰度級    int[] m = new int[(b[k - 1]) + 1];//存放各個灰度級出現的次數    FileWriter writer = new FileWriter("D:\\桌面\\遙感圖像統計值.txt", true);    double[] f = new double[2];    f[0] = sum / k;//將平均值保存到浮點數組中    writer.write("\n" + a + "該遙感圖像DN值最大為:" + b[k - 1] + ",最小為:" + b[0] + ",平均數是:" + f[0] + "\n");    //計算均方根誤差(標準差)    for (int i = 0; i < k; i++) {        f[1] += ((sum / k) - b[i]) * ((sum / k) - b[i]);    }    f[1] = Math.sqrt(f[1] / k);    writer.write("均方根誤差(標準差)是:" + f[1] + "\n");    //計算灰度級中位數    if (k % 2 == 0)        e = (b[k / 2] + b[k / 2 + 1]) / 2;    else        e = b[k / 2 + 1];    writer.write("中位數是:" + e + "\n");    //計算眾數    for (int i = b[0]; i <= b[k - 1]; i++) {//范圍是最小值和最大值之間的唯一值        y[i] = i;//由于排序了,所以第一個肯定是最小的灰度級        for (int j = 0; j < k; j++) {//統計對象是所有的像元值            if (y[i] == b[j])//如果該灰度級等于其中一個像元值                m[i]++;//這個灰度級中的像元數量加一        }        if (t < m[i]) {//不斷比較m            t = m[i];//t是頻數最大的那個            s = y[i];//把頻數最大的灰度級賦給s        }    }    writer.write("眾數是:" + s + "\n");    //直方圖    for (int i = b[0]; i <= b[k - 1]; i++) {//范圍是最小值和最大值之間的唯一值        y[i] = i;//由于排序了,所以第一個肯定是最小的灰度級        if (y[i] < 10) {//如果是個位數的灰度級就加兩個空格            writer.write("  ");        }        if (y[i] > 9 && y[i] < 100) {//如果是十位數的灰度級就加一個空格            writer.write(" ");        }        writer.write(y[i] + ":");        for (int j = 0; j < m[i]; j++) {            writer.write("■");        }        writer.write(m[i] + "\n");//m是每個灰度級出現的像元數量(頻數)    }    writer.close();    return f;}public static void NDVI(int[] c, int[] d, File m) throws IOException {    float[] e = new float[c.length];    BufferedReader br = new BufferedReader(new FileReader(m));    BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\桌面\\NDVI計算結果.txt"));    //建立兩個緩沖區提高讀寫數據的效率    //可以換格式復制,很厲害    String str;//用來臨時存放數據    for (int i = 0; i < 6; i++) {        str = br.readLine();        bw.write(str);//把讀取的內容寫進去        bw.newLine();//讀完一行就開辟新的一行    }    for (int i = 0; i < c.length; i++) {        e[i] = (float) (d[i] - c[i]) / (float) (d[i] + c[i]);        bw.write(e[i] + " ");    }    bw.close();}public static void 多波段圖像統計(int[] a, int[] b, double[] A, double[] B) throws IOException {    FileWriter writer = new FileWriter("D:\\桌面\\遙感圖像統計值.txt", true);    double o = 0;    for (int i = 0; i < a.length; i++) {        o += (a[i] - A[0]) * (b[i] - B[0]);    }    o = o / a.length;    writer.write("兩波段的協方差為:" + o + "\n");    o = o / (A[1] * B[1]);    writer.write("兩波段的相關系數為:" + o);    writer.close();}
}

來源:https://blog.csdn.net/qq_43173805/article/details/120936209

成都途遠GIS是一家專業致力于無人機航空攝影測繪、航空數據處理、GIS地理信息系統研發、數字孿生城市制作、數字沙盤模型等業務的創新型科技公司,為您提供一站式地理信息服務。

日韩精品人妻中文字幕有码| 97国语精品自产拍在线观看一| 荒野大镖客暴躁老太太| 免费国产VA在线观看中文字| 亚洲最大AV无码网站| 久久精品蜜芽亚洲国产AV| 亚洲日韩AV一区二区三区四区| 黑人粗硬进入过程视频| 调教狠扇打肿私密跪撅屁股作文| 公交车上拨开她湿润的内裤| 深入浅出TXL金银花讲的什么| 公么大龟弄得我好舒服秀婷视频 | 城中村快餐嫖老妇对白| 女主播屁G裸露W身曝光| 亚洲中文字幕无码日韩精品| 久久精品国产久精国产爱| 亚洲欧美黑人深喉猛交群| 精品国产自在现线看久久| 亚洲精品无AMM毛片| 国产午夜不卡AV免费| 亚洲AV无码国产精品色| 好硬好湿好爽再深一点动态图片| 亚洲成成熟女人专区| 精品无码人妻被多人侵犯AV| 亚洲一区二区三区成人片在线观看| 国自产拍偷拍精品啪啪AV| 亚洲国产成人久久一区WWW| 精品人妻一区二区三区免费看| 亚洲最大成人综合网720P| 美国ZOOM人与ZOOM视频| AV无码AV天天AV天天爽| 日本黄漫动漫在线观看视频| 99视频精品全部免费免费观看| 麻花豆传媒剧国产MV在线上-| 中文字AV字幕在线观看| 久久综合给久久狠狠97色| 中文字幕无码家庭乱欲| 欧美乱强伦XXXXX高潮| 成人久久免费网站| 无码AⅤ最新AV无码专区| 国偷自产AⅤ一区二区三区| 野花社区高清在线观看视频| 男男GAy作爱免费观看| 波多野结衣TORRENT| 天天影视网色香欲综合网| 国内色母与进口色母区别| 亚洲中文字幕无码AV| 男人激烈吮乳吃奶毛片| 成 人 黄 色 网站 S色| 无套内射AV二区| 精产国品一二三产品区别在哪里| 影音先锋无码A∨男人资源站| 欧美一级一片内射欧美美妇3p| エロドラえもんCOM中文在线| 人妻无码一区二区三区 | 艳妇乳肉豪妇荡乳AV无码福利| 欧美大胆A级视频免费| YIN荡到骨子里的SAO货| 人妻少妇精品无码专区| 国产CHINESE男男GAYGAY网站| 亚洲AV无码成人精品区浪潮AV| 久久婷婷大香萑太香蕉AV人| 中文无码制服丝袜人妻AV| 人人澡人人妻人人爽人人蜜桃麻豆| 国产VOYEUR精品偷窥222| 亚洲国产日韩A在线播放| 妺妺窝人体色聚窝窝| 多毛BGMBGMBGM胖在| 无码国模大尺度视频在线观看| 精品一区二区三区免费视频| 伊人久久大香线蕉AV五月天宝贝| 欧洲老太太BBBH| 国产精品天干天干有线观看| 亚洲AV无码专区色爱天堂老鸭窝| 狼人青草久久网伊人| 差差差很疼30分钟视频| 亚洲AV日韩AⅤ无码色老头| 美女高潮流白浆娇喘免费网站| 成人无码特黄特黄AV片在线| 无套中出丰满人妻无码| 久久五月精品中文字幕| 初尝人妻少妇中文字幕| 亚洲狠狠色成人综合网| 欧美亚洲日韩不卡在线在线观看 | 亚洲中文字幕久久无码| 全免费A级毛片免费看网站| 国产麻豆精品精东影业AV网站| 曰韩无码二三区中文字幕| 色欧美片视频在线观看| 久久ZYZ资源站无码中文动漫| WWW.好好日.COM| 亚洲AV永久无码精品无码流畅| 女人被暴躁C到高潮容易怀孕| 国产精品成人3p一区二区三区| 又大又长粗又爽又黄少妇毛片| 熟妇人妻av无码一区二区三区| 久久久久久精品免费免费WEⅠ| 催眠性指导OVA1一6集| 亚洲色精品三区二区一区| 日本怡春院一区二区三区| 国产男男GAY做受XXX| 性欧美牲交在线视频| 色婷婷亚洲一区二区综合| 精品综合久久久久久888蜜芽| 布丁漫画土豪漫画入口页面| 亚洲欧美综合精品成人网站| 日日摸夜夜添夜夜添亚洲女人 | JUX900被公每天侵犯的我| 亚洲AV无码专区在线观看亚| 普通话JIZZYOU中国少妇| 记忆女神的女儿们| 成 人 黄 色 网站 小说 免| 亚洲欧洲中文日韩久久AV乱码| 日韩精品人妻系列无码AV东京 | 高清熟女国产一区二区三区| 一边摸一边吃奶一边做爽| 铜铜铜铜铜铜铜铜好大好深色| 免费看成人A级毛片| 国产午夜激无码AV片在线观看| MM1313亚洲精品无码久久| 亚洲国产成人无码影片在线播放| 日本老熟妇毛茸茸| 久久九九久精品国产| 国产成人 综合 亚洲欧美| 2020精品国产自在现线看 | 欧美极品少妇XXXXⅩ喷水| 国产福利一区二区三区在线视频 | 色爱无码AⅤ综合区| 久人人爽人人爽人人片AV| 国产精品夜间视频香蕉| JUX900被公每天侵犯的我| 亚洲日韩国产一区二区三区| 熟妇人交VIDEOS复古| 欧美成人黑人XX视频免费观看| 黑人又大又粗又硬XXXXX免费| 厨房掀起裙子从后面进去视频| 中文字幕AV无码人妻| 亚洲AV日韩AV永久无码水密桃| 日本中文字幕乱码免费| 老熟女@TUBEUMTV| 国产亚洲色婷婷久久99精品| 成·人免费午夜无码不卡| 中文人妻AV高清一区二区| 亚洲爆乳无码一区二区三区| 强被迫伦姧在线观看无码| 久久精品熟女亚洲AV艳妇| 国产精品天干天干在线观看澳门| 啊~用力CAO我CAO死我视频| 伊人婷婷六月狠狠狠去| 亚洲AV无码日韩AⅤ无码忘忧草| 日韩免费无码专区精品观看 | 国产精品天干天干综合网| 草莓丝瓜榴莲绿巨人WWW| 中文字幕AV一区二区三区| 亚洲GV天堂GV无码男同在线观| 丝袜灬啊灬快灬高潮了AV| 人妻丰满AV中文久久不卡| 旅游途中夫妻换着玩的说说搞笑| 狠狠色婷婷久久一区二区| 国产丰满大屁股XXXX| 超碰97人人做人人爱2020| 7777色情XXXX欧美| 一本一道波多野结衣一区| 亚洲浮力影院久久久久久| 无码人妻少妇伦在线电影| 欧美VA国人精品VA| 久久久久亚洲AV无码观看| 黑人异族XXXⅩ吊大| 国产精品无码免费视频二三区| 成本人H无码播放私人影院| 999ZYZ玖玖资源站在线观看| 伊人久久亚洲综合| 亚洲乱码精品久久久久| 亚洲 自拍 另类小说综合图区| 人人妻人人爽日日人人| 女性高爱潮AAAA级视频免费| 可播放的免费男同GAY| 久久变态刺激另类SM按摩| 韩国三级HD中文字幕叫床| 国产精品无码一区二区牛牛| 粉嫩小泬无遮挡久久久久久小说| ZZTT10.CCM黑料| 99久久无色码中文字幕人妻| 主人给我戴上奶牛榨乳器调教 | 青青青国产成人久久111网站| 免费无码成人AV电影在线播放| 旧芭乐视频官网下载地址IOS| 久久久久成人精品无码中文字幕| 精品国产一区二区三区久久影院| 果冻传媒董小宛一区二区| 国产影片AV级毛片特别刺激| 国产精品亚洲А∨无码播放麻豆 | 亚洲AV永久无码精品尤物 | 中文字幕爆乳巨爆乳系列无码| 一二三四电影在线观看视频播放免| 亚洲日韩激情无码一区| 亚洲欧洲成人AV电影网| 亚洲精品无码AMM毛片| 亚洲精品无码你懂的| 亚洲欧美日韩中文字幕一区二区三|