2001.6.21
V6.5で実行確認

数値地図250mメッシュ標高変換SML-Ver.3.0


●今回のVer.3.0とVer.nullの変更内容





実行前に、2行目に数値地図ファイルのある場所を記載してください。
--------------------------------------------------------------
clear()
infile=fopen("r:/data/250M/5639.SEM","r","Shift-JIS")  <----実行前に、入力ファイルの場所(パス)を設定する。rはCD-ROMドライブ。
line$=fgetline$(infile)
code$=left$(line$,6)
scale$=mid$(line$,7,5)
survey$=mid$(line$,12,4)
modify$=mid$(line$,16,4)
degital$=mid$(line$,20,4)
ew_count$=mid$(line$,24,3)
sn_count$=mid$(line$,27,3)
ld_lat_do$=mid$(line$,30,3)
ld_lat_bun$=mid$(line$,33,2)
ld_lat_byo$=mid$(line$,35,2)
ld_lon_do$=mid$(line$,37,3)
ld_lon_bun$=mid$(line$,40,2)
ld_lon_byo$=mid$(line$,42,2)
ru_lat_do$=mid$(line$,44,3)
ru_lat_bun$=mid$(line$,47,2)
ru_lat_byo$=mid$(line$,49,2)
ru_lon_do$=mid$(line$,51,3)
ru_lon_bun$=mid$(line$,54,2)
ru_lon_byo$=mid$(line$,56,2)
map_num$=mid$(line$,58,1)
#map_num1name$=mid$(line$,59,20)
map_num1name$=mid$(line$,59,10)
map_num1flag$=mid$(line$,69,1)
#map_num2name$=mid$(line$,80,20)
map_num2name$=mid$(line$,70,10)
map_num2flag$=mid$(line$,80,1)
#map_num3name$=mid$(line$,101,20)
map_num3name$=mid$(line$,81,10)
map_num3flag$=mid$(line$,91,1)
#map_num4name$=mid$(line$,122,20)
map_num4name$=mid$(line$,92,10)
map_num4flag$=mid$(line$,102,1)
record_num0$=mid$(line$,103,3)
#comment$=mid$(line$,146,80)
comment$=mid$(line$,106,40)
array record_flag[320]
for i=1 to 320
begin
temp$=mid$(line$,146+(i-1),1)
record_flag[i]=StrToNum(temp$)
end

GetOutputRaster(RAS1,320,320,"16-bit signed")  <-----実行時、インポート先のファイル、オブジェクト名を入力。

array record_value[320]

for j=1 to 320
if (record_flag[j]==0) then
begin
for k = 1 to 320
RAS1[j,k] = 0   <-----0(海部)ならば、j行目320カラム全部に0を代入。
# RAS1[j,k] = -999   <-----0(海部)ならば、j行目320カラム全部に -999 を代入。
end
else
begin
records$=fgetline$(infile)
mesh_code$=left$(records$,6)
record_num$=mid$(records$,7,3)
for k = 1 to 320
begin
value_temp$=mid$(records$,10+(k-1)*5,5)
record_value[k]=StrToNum(value_temp$)
# printf("value is %d\n",record_value[k])
if (record_value[k]==-9999) then
begin
record_value[k] = 0
end
RAS1[j,k]=record_value[k]/10  <-----1(標高データ存在)ならば、データファイルを読む。
end
end

#SetNull(RAS1, -999)

#attach georef
array xsrc[4], ysrc[4], zsrc[4]
array xdest[4], ydest[4], zdest[4]

ld_lat_1=StrToNum(ld_lat_do$)
ld_lat_2=StrToNum(ld_lat_bun$)
ld_lat_3=StrToNum(ld_lat_byo$)
ld_lat_dd=ld_lat_1+ld_lat_2/60+ld_lat_3/3600

ld_lon_1=StrToNum(ld_lon_do$)
ld_lon_2=StrToNum(ld_lon_bun$)
ld_lon_3=StrToNum(ld_lon_byo$)
ld_lon_dd=ld_lon_1+ld_lon_2/60+ld_lon_3/3600

ru_lat_1=StrToNum(ru_lat_do$)
ru_lat_2=StrToNum(ru_lat_bun$)
ru_lat_3=StrToNum(ru_lat_byo$)
ru_lat_dd=ru_lat_1+ru_lat_2/60+ru_lat_3/3600

ru_lon_1=StrToNum(ru_lon_do$)
ru_lon_2=StrToNum(ru_lon_bun$)
ru_lon_3=StrToNum(ru_lon_byo$)
ru_lon_dd=ru_lon_1+ru_lon_2/60+ru_lon_3/3600

#control point 1 - upper left corner
xsrc[1]=0
ysrc[1]=0
zsrc[1]=0
xdest[1]=ld_lon_dd
ydest[1]=ru_lat_dd
zdest[1]=0

#control point 2 - lower right corner
xsrc[2]=320
ysrc[2]=320
zsrc[2]=0
xdest[2]=ru_lon_dd
ydest[2]=ld_lat_dd
zdest[2]=0

#control point 3 - upper right corner
xsrc[3]=320
ysrc[3]=0
zsrc[3]=0
xdest[3]=ru_lon_dd
ydest[3]=ru_lat_dd
zdest[3]=0

#control point 4 - lower left corner
xsrc[4]=0
ysrc[4]=320
zsrc[4]=0
xdest[4]=ld_lon_dd
ydest[4]=ld_lat_dd
zdest[4]=0

#set number of control points
numpoints = 4

# now create the georef via dailog
CreateControlPointGeoref(RAS1, numpoints, xsrc, ysrc, zsrc, xdest, ydest, zdest) <----ここでダイアログが開く。LatLon及び必要なDatumを選択。

#printf("code is %s\n",code$)
#printf("scale is %s\n",scale$)
#printf("survey is %s\n",survey$)
#printf("modify is %s\n",modify$)
#printf("degital is %s\n",degital$)
#printf("ew_count is %s\n",ew_count$)
#printf("sn_count is %s\n",sn_count$)
#printf("ld_lat_do is %s\n",ld_lat_do$)
#printf("ld_lat_bun is %s\n",ld_lat_bun$)
#printf("ld_lat_byo is %s\n",ld_lat_byo$)
#printf("ld_lon_do is %s\n",ld_lon_do$)
#printf("ld_lon_bun is %s\n",ld_lon_bun$)
#printf("ld_lon_byo is %s\n",ld_lon_byo$)
#printf("ru_lat_do is %s\n",ru_lat_do$)
#printf("ru_lat_bun is %s\n",ru_lat_bun$)
#printf("ru_lat_byo is %s\n",ru_lat_byo$)
#printf("ru_lon_do is %s\n",ru_lon_do$)
#printf("ru_lon_bun is %s\n",ru_lon_bun$)
#printf("ru_lon_byo is %s\n",ru_lon_byo$)
#printf("map_num is %s\n",map_num$)
#printf("map_num1name is %s\n",map_num1name$)
#printf("map_num1flag is %s\n",map_num1flag$)
#printf("map_num2name is %s\n",map_num2name$)
#printf("map_num2flag is %s\n",map_num2flag$)
#printf("map_num3name is %s\n",map_num3name$)
#printf("map_num3flag is %s\n",map_num3flag$)
#printf("map_num4name is %s\n",map_num4name$)
#printf("map_num4flag is %s\n",map_num4flag$)
#printf("record_num0 is %s\n",record_num0$)
#printf("comment is %s\n",comment$)

#for j=1 to 320
# begin
# printf("record_flag[%d] is %d\n",j, record_flag[j])
# end

CloseRaster(RAS1)
fclose(infile)

beep()

--------------------------------------------------------------

●取り込んだ画像例
本SMLにより、コード番号5638,5738,5639,5739の4枚の図郭のデータを取り込んだ。
Process/Raster/Mosaicにより1つのラスターデータにして、カラーマップ(半透明)および陰影図を組み合わせて表示した。






Home | Titles | Head