我想從無法使用映射工具箱(更具體地說,無法使用WebMapServer對象)的Web地圖服務器讀取數據。我可以自己構建URL,但不能使用返回bmp文件的WMS的imread。但是,其中一個WMS返回BIL文件(Band InterLeaved)和imread()無法識別它。從Matlab中的URL讀取帶交織圖像
如何從URL中讀取BIL文件,無需使用映射工具箱?
編輯:這是我想讀一個例子網址:
另外,如果我嘗試只是抓住字節數據W/urlread然後把它寫入到文件,不知何故有些值會丟失。
bytedata = urlread(mapurl);
fp = fopen('tmp.bil', 'w');
fwrite(fp, bytedata, 'uint8');
fclose(fp);
fp = fopen('tmp.bil', 'r');
z = fread(fp, 'int16');
imagesc(reshape(z, 925, 1113)');
上面顯示的圖像類似於映射工具箱返回的圖像,但有些區域設置爲不應該是常量值。
+0
你有沒有試過'MATLAB一個簡單的谷歌搜索bandinterleaved'第一主打是http://www.mathworks.com/help/matlab/ref/multibandread.html –
+0
@slayton:是的,但只有它讀取文件。我需要從URL讀取。 –
+0
是的,我明白了。我想嘗試的第一件事就是將URL中的數據保存爲臨時文件,然後查看「multibandread」是否可以打開該節奏文件。那麼如果這樣做的話,我會閱讀'multibandread'的源代碼並實現我自己的讀者。 –