一種在Android系統上瀏覽大型遙感影像的方法
【技術領域】
[0001]本發明涉及一種在Android系統上瀏覽大型遙感影像的方法。
【背景技術】
[0002] 在移動設備上實現遙感影像的瀏覽是移動GIS開發的基石,開發方式主要有基于 現有組件的二次開發和基于底層自主開發。如ERSI公司的ArcGIS、跬步的UCMap、超圖的 SuperMap等二次開發組件,都通過自己的方法支持遙感影像在移動終端上的加載,但對大 型離線遙感影像的支持明顯不足,極易引起00M(0ut Of Memory)內存溢出,導致應用極不 穩定。目前,Android系統的移動設備已占市場份額83.6 %,使用廣泛,但Google設定 Android設備上每個app應用的默認內存空間為16MB,導致Android系統更加難以瀏覽幾GB 或幾十GB的大型遙感影像。
【發明內容】
[0003] 為了解決單個應用內存受限的Android移動設備上加載遙感影像,實現自主GIS開 發。本發明提供了一種在Android上瀏覽大型遙感影像的方法,該方法對高普萊亞SPOT影像 無損壓縮后可節省40.465 %的存儲空間,高分一號影像可節省59.701 %的空間。加載影像 時消耗的內存最大為2 9 . 5 9 8 Μ B,常用瀏覽倍數范圍內的影像的平均加載時間為 1854.5978ms、最小加載時間為751.58ms,且影像的瀏覽速度與影像的大小關系較小,主要 與屏幕中顯示影像的范圍(即瀏覽倍數)相關。
[0004] 為了實現上述技術目的,本發明的技術方案是,
[0005] -種在Android系統上瀏覽大型遙感影像的方法,包括以下步驟:
[0006] 影像轉換成瓦片文件流集文件和索引文件步驟,包括:
[0007]步驟一:讀取需要進行處理的遙感影像,并獲得影像中圖片的屬性信息;
[0008]步驟二:將圖片的屬性信息及壓縮信息寫入到瓦片流集文件的文件頭中;
[0009]步驟三:將圖片按預設的大小進行劃分,劃分出的每個分塊均計算左上角相對于 圖片的坐標;
[0010]步驟四:讀取步驟三中的分塊,將分塊映射成指定大小的圖像,從遙感影像上讀取 指定波段的信息,選取三個波段賦予紅色、綠色、藍色的顏色值,生成24位的真彩色,將步驟 三中每個分塊中的顏色值生成一個預設的大小的瓦片文件,將瓦片文件依次寫入瓦片流集 文件,將每塊瓦片文件在瓦片流集文件中的開始位置寫入瓦片索引文件,建立瓦片索引表; [0011]從瓦片文件流集文件和索引文件拼接影像步驟,包括:
[0012] 步驟1:從瓦片索引文件中讀取出瓦片索引表,即所有瓦片在瓦片文件流集文件中 的起始位置;
[0013] 步驟2:從瓦片文件流集文件的文件頭讀取出圖片的屬性信息及壓縮信息,計算出 瓦片對應的影像塊大小、左上角的地理坐標、影像分割成瓦片后的行數和列數;獲取當前屏 幕顯示影像的范圍并計算出瓦片的行號和列號,根據屏幕范圍計算出各瓦片在屏幕上映射 區域的大小、左上角坐標;
[0014] 步驟3:加載瓦片文件,將各瓦片文件按指定大小排列在指定的位置上。
[0015] 瀏覽影像步驟,包括:
[0016] 步驟1)通過縮放、移動操作,改變影像的顯示范圍;
[0017] 步驟2)根據步驟1)中顯示范圍的變化,改變鷹眼中當前顯示區域的標注;
[0018]步驟3)計算當前顯示區域與上次顯示區域的影像交集區域和非交集區域,若有影 像交集,則根據上次的影像、屏幕顯示區域計算出影像交集的屏幕區域和映射范圍,從屏幕 上顯示的圖像中截取此區域的圖像信息,再映射到屏幕上;非交集區域使用從瓦片文件流 集文件和索引文件拼接影像步驟進行加載影像;清除空白區域內的影像。
[0019] 所述的一種在Android系統上瀏覽大型遙感影像的方法,步驟一中,所述的圖片的 屬性信息包括Dr i ver驅動信息、GCP地面控制點信息、Pro j e ct i on投影信息、Band波段信息、 映射的地理空間范圍、圖像的寬度和高度。
[0020] 所述的一種在Android系統上瀏覽大型遙感影像的方法,步驟二中,所述的圖片的 壓縮信息包括影像的圖像寬度和高度、左上角的地理坐標、影像上每個像素寬度和高度、影 像在X軸和Y軸上的偏移量、瓦片的寬度和高度、壓縮倍數。
[0021] 本發明的有益效果是,可在Android系統上離線加載的大型遙感影像(已支持 25.6GB的高分一號影像和12.9G的普萊達SPOT影像),節省磁盤空間,減少了瓦片導入移動 平臺的時間,為后續移動GIS在Android上的開發提供了可行性,將極大地推動移動GIS在森 林資源信息采集、遙感判圖等方面的應用。
[0022] 下面結合附圖對本發明作進一步說明。
【附圖說明】
[0023]圖1為本發明的實現步驟;
[0024] 圖2為本發明瓦片流集的文件結構;
[0025] 圖3為本發明中瓦片索引文件結構;
[0026]圖4為本發明的顯示效果圖。
【具體實施方式】
[0027]本實施例包括以下步驟:
[0028] 影像轉換成瓦片文件流集文件和索引文件步驟,包括:
[0029] 步驟一:讀取需要進行處理的遙感影像,并獲得影像中圖片的屬性信息;
[0030]步驟二:將圖片的屬性信息及壓縮信息寫入到瓦片流集文件的文件頭中;
[0031]步驟三:將圖片按預設的大小進行劃分,劃分出的每個分塊均計算左上角相對于 圖片的坐標,其中預設大小是指圖片劃分的像素面積大小,這個根據平板的性能來定,平板 性能越好,預設的大小可更大,如256*256等;而左上角相對于圖片的坐標,是這一塊劃分出 的圖片最左上角的那一像素,相對于整個圖片的位置。如以256*256像素大小劃分,則第一 塊左上角的相對于圖片的坐標為(〇,〇),相鄰右邊塊為左上角坐標為(256,0),再往右的塊 的左上角坐標為(512,0);相鄰下邊塊的左上角坐標為(0,256),再往下的塊的左上角坐標 為(〇,512)。
[0032]步驟四:讀取步驟三中的分塊,將分塊映射成指定大小的圖像,由于有些遙感影像 是0.1米的高清分辨率,但在實際應中,可能不需要這么高的清晰度。在劃分塊時,分塊的大 小可能會是預設大小的幾倍,故對塊中的影像數據經映射后,生成指定大小的瓦片。
[0033]然后從遙感影像上讀取指定波段的信息,選取三個波段賦予紅色、綠色、藍色的顏 色值,生成24位的真彩色,將步驟三中每個分塊中的顏色值生成一個預設的大小的瓦片文 件,將瓦片文件依次寫入瓦片流集文件,將每塊瓦片文件在瓦片流集文件中的開始位置寫 入瓦片索引文件,建立瓦片索引表;由于計算機中的顏色是采用RGB(Red紅色、Green綠、 Blue藍色)顏色系統,而使用紅、綠、藍三種顏色按不同的份量疊加可得到的人類視力所能 感知的所有顏色。圖片上每個像素點是一種顏色,由RGB三基色組成,每種基色用一個字節 (=8b i t)存儲,這樣生成的圖叫做24位真彩色的圖。
[0034]遙感影像按波段數量分為多波段遙感影像和單波段遙感影像,如landsat5的TM影 像有7個波段,單波段的影像顯示效果為灰度圖。若要顯示多波段的彩色遙感影像,需設置 哪個波段的值代表紅色、哪個波段的值代表綠色、哪個波段的值代表藍色,這三個波段的顏 色值疊加后生成一副彩色圖。
[0035]步驟三中按n*m個像素點大小的網格分塊,求得了每塊的左上角的圖片坐標;步驟 四時從影像中選擇三個波段代表紅、綠、藍三基色,讀取這個網格中三個波段的值,存在一 個3*n*m大小的數組中,再將這個數組轉換成一個n*m個像素的瓦片文件,并寫入瓦片流集 文件和建立瓦片索引表。
[0036]從瓦片文件流集文件和索引文件拼接影像步驟,包括:
[0037] 步驟1:從瓦片索引文件中讀取出瓦片索引表,即所有瓦片在瓦片文件流集文件中 的起始位置;
[0038] 步驟2:從瓦片文件流集文件的文件頭讀取出圖片的屬性信息及壓縮信息,計算出 瓦片對應的影像塊大小、左上角的地理坐標、影像分割成瓦片后的行數和列數;獲取當前屏 幕顯示影像的范圍并計算出瓦片的行號和列號,根據屏幕范圍計算出各瓦片在屏幕上映射 區域的大小、左上角坐標;
[0039]步驟3:加載瓦片文件,將各瓦片文件按指定大小排列在指定的位置上。
[0040]瀏覽影像步驟,包括:
[0041 ]步驟1)通過縮放、移動操作,改變影像的顯示范圍;
[0042]步驟2)根據步驟1)中顯示范圍的變化,改變鷹眼中當前顯示區域的標注;鷹眼是 GIS(Geographic Information System地理信息系統)中一個基本的功能。在鷹眼圖上可以 像從高空中俯視一樣查看所顯示的地圖在整個圖中位置。即可看做高空俯視的縮略圖,用 于掌握所顯示的地圖在整個圖中的位置。
[0043]步驟3)計算當前顯示區域與上次顯示區域的影像交集區域和非交集區域,若有影 像交集,則根據上次的影像、屏幕顯示區域計算出影像交集的屏幕區域和映射范圍,從屏幕 上顯示的圖像中截取此區域的圖像信息,再映射到屏幕上;非交集區域使用從瓦片文件流 集文件和索引文件拼接影像步驟進行加載影像;清除空白區域內的影像。
[0044] 上述的步驟1)為