File:Vesuvius SRTM3.png
出自Wikimedia Commons
跳至導覽
跳至搜尋
預覽大小:711 × 599 像素。 其他解析度:285 × 240 像素 | 570 × 480 像素 | 942 × 794 像素。
原始檔案 (942 × 794 像素,檔案大小:922 KB,MIME 類型:image/png)
檔案資訊
結構化資料
說明
摘要
[編輯]描述Vesuvius SRTM3.png |
English: Shaded terrain map of the Naples and Mount Vesuvius region from SRTM3 elevation data. Each pixel corresponds to about 70x70 m. SRTM tile used was http://dds.cr.usgs.gov/srtm/version2_1/SRTM3/Eurasia/N40E014.hgt.zip. The top of the image is 41°N, the left side is 14°E.
|
日期 | |
來源 | 自己的作品 |
作者 |
Morn the Gorn compass rose from Maps_template-fr.svg: Eric Gaba (Sting - fr:Sting) |
其他版本 |
Derivative works of this file: 本檔案衍生自: Vesuvius SRTM3.xcf |
Code
[編輯]SRTM data was plotted with the following Python 2 script (requires Python Imaging Library and NumPy) and then rescaled in Gimp to correct for the raw data aspect ratio at that latitude (about 92 m x 70 m). Terrain shading and hypsometric colors were combined in Gimp in layer multiply mode.
# Read SRTM3 file and create shaded relief
# 2010-04-05
from struct import unpack,calcsize
from numpy import *
import numpy as np
from PIL import Image
row_length = 1201 # row_length is 1201 for SRTM3 or 3601 for SRTM1
file_name = "N40E014.hgt" # from http://dds.cr.usgs.gov/srtm/version2_1/SRTM3/Eurasia/
hlim = 800 # height limit for map [m]
ref_lat = 40.55 # reference latitude
earth_eq = 6371. * 1000. * 2. * pi
x_scale = 1./360.*earth_eq*cos(ref_lat/180.*pi)/row_length
y_scale = 1./360.*earth_eq/row_length
print "1 pixel = %u * %u m" % (x_scale, y_scale)
print "factor", y_scale/x_scale
h = zeros((row_length, row_length))
f = open(file_name, 'r')
li = []
for j in range(row_length):
for i in range(row_length):
d = f.read(2)
(height,) = unpack('>h', d)
h[i,j] = height
if height < -1000:
li.append((i,j))
hmax = h.max()
h3 = zeros_like(h)
h3[:,:] = h[:,:]
print len(li), "missing data points"
def get_nei(z):
h2 = h[z[0]-1:z[0]+2,z[1]-1:z[1]+2]
nn = sum(where(h2 < -1000, 0, 1))
av = sum(where(h2 > -1000, h2, 0)) / float(nn)
return nn, av
# fill missing points with a nearest-neighbor averaging method:
loop = len(li)
lim = 7
while loop > 0:
sd = False
for q in range(len(li)):
if h[li[q]] > -1000.: continue
n, a = get_nei(li[q])
if n >= lim:
print li[q],loop, n, a, lim
h3[li[q]] = a
loop -= 1
sd = True
if not sd: lim -= 1
h[:,:] = h3[:,:]
print "missing points done"
def hext(a):
"Hex color to triplet."
r,g,b = a[0:2], a[2:4], a[4:6]
return int(r, 16), int(g, 16), int(b, 16)
# from http://en.wikipedia.org/wiki/Wikipedia:WikiProject_Maps/Conventions/Topographic_maps:
col_sea = hext("0978ab")
cols = """
{{Mapcolor|r=245|v=244|b=242|hex=#F5F4F2|col=black}}
{{Mapcolor|r=224|v=222|b=216|hex=#E0DED8|col=black}}
{{Mapcolor|r=202|v=195|b=184|hex=#CAC3B8|col=black}}
{{Mapcolor|r=186|v=174|b=154|hex=#BAAE9A|col=black}}
{{Mapcolor|r=172|v=154|b=124|hex=#AC9A7C|col=black}}
{{Mapcolor|r=170|v=135|b=83|hex=#AA8753|col=black}}
{{Mapcolor|r=185|v=152|b=90|hex=#B9985A|col=black}}
{{Mapcolor|r=195|v=167|b=107|hex=#C3A76B|col=black}}
{{Mapcolor|r=202|v=185|b=130|hex=#CAB982|col=black}}
{{Mapcolor|r=211|v=202|b=157|hex=#D3CA9D|col=black}}
{{Mapcolor|r=222|v=214|b=163|hex=#DED6A3|col=black}}
{{Mapcolor|r=232|v=225|b=182|hex=#E8E1B6|col=black}}
{{Mapcolor|r=239|v=235|b=192|hex=#EFEBC0|col=black}}
{{Mapcolor|r=225|v=228|b=181|hex=#E1E4B5|col=black}}
{{Mapcolor|r=209|v=215|b=171|hex=#D1D7AB|col=black}}
{{Mapcolor|r=189|v=204|b=150|hex=#BDCC96|col=black}}
{{Mapcolor|r=168|v=198|b=143|hex=#A8C68F|col=black}}
{{Mapcolor|r=148|v=191|b=139|hex=#94BF8B|col=black}}
{{Mapcolor|r=172|v=208|b=165|hex=#ACD0A5|col=black}}
"""
col = []
for l in cols.splitlines():
if len(l) < 10: continue
i = l.find('#')
if i > -1:
col.append(hext(l[i+1:i+7]))
col.reverse() # -> bottom to top
o = Image.new('RGB', h.shape)
def interp(c, f):
"Interpolate into color table."
r = int((1.-f) * col[c][0] + f * col[c+1][0])
g = int((1.-f) * col[c][1] + f * col[c+1][1])
b = int((1.-f) * col[c][2] + f * col[c+1][2])
return r,g,b
for j in range(row_length):
for i in range(row_length):
c, f = divmod(h[j,i] / hmax * (len(col)-1), 1)
if 0 < h[j,i] < hmax:
o.putpixel((j,i), interp(int(c), f))
elif h[i,j] == hmax:
o.putpixel((j,i), col[-1])
else: o.putpixel((j,i), col_sea)
o.save("map_height.png") # save height map
o2 = o.crop((0,0,942,603))
o2.save("map_height_cropped.png")
# taken from hillshade.py:
#def illumination(idata,azdeg=315.0,altdeg=45.):
def illumination(idata,azdeg=225.0,altdeg=45.):
# convert alt, az to radians
az = azdeg*np.pi/180.0
alt = altdeg*np.pi/180.0
# gradient in x and y directions
dx, dy = np.gradient(idata)
slope = 0.5*np.pi - np.arctan(np.hypot(dx, dy))
aspect = np.arctan2(dx, dy)
odata = np.sin(alt)*np.sin(slope) + np.cos(alt)*np.cos(slope)*np.cos(-az -\
aspect - 0.5*np.pi)
# rescale to interval -1,1
# 1 means maximum sun exposure and 0 means complete shade.
odata = (odata - odata.min())/(odata.max() - odata.min())
return odata
il = 255 * illumination(h)
o4 = Image.new('RGBA', il.shape)
for j in range(row_length-1):
for i in range(row_length-1):
v = int(il[j,i])
if 0 <= v < 128:
alpha = (255 - 2*v)
o4.putpixel((j,i), (0,0,0,alpha))
elif v == 128:
o4.putpixel((j,i), (0,0,0,0))
elif 128 < v < 256:
alpha = 2*(v-128)
o4.putpixel((j,i), (255,255,255,alpha))
else:
o4.putpixel((j,i), (255,255,255,0))
o4.save("il_NW_alpha.png") # NW-illuminated (alpha transparency for use with Inkscape)
授權條款
[編輯]我,本作品的著作權持有者,決定用以下授權條款發佈本作品:
此檔案採用共享創意 姓名標示-相同方式分享 3.0 未在地化版本授權條款。
- 您可以自由:
- 分享 – 複製、發佈和傳播本作品
- 重新修改 – 創作演繹作品
- 惟需遵照下列條件:
- 姓名標示 – 您必須指名出正確的製作者,和提供授權條款的連結,以及表示是否有對內容上做出變更。您可以用任何合理的方式來行動,但不得以任何方式表明授權條款是對您許可或是由您所使用。
- 相同方式分享 – 如果您利用本素材進行再混合、轉換或創作,您必須基於如同原先的相同或兼容的條款,來分布您的貢獻成品。
已授權您依據自由軟體基金會發行的無固定段落、封面文字和封底文字GNU自由文件授權條款1.2版或任意後續版本,對本檔進行複製、傳播和/或修改。該協議的副本列在GNU自由文件授權條款中。http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue |
您可以選擇您需要的授權條款。
註解 InfoField | 該圖片含有註解:在維基媒體共享資源上查看註解 |
檔案歷史
點選日期/時間以檢視該時間的檔案版本。
日期/時間 | 縮圖 | 尺寸 | 用戶 | 備註 | |
---|---|---|---|---|---|
目前 | 2010年4月5日 (一) 01:01 | 942 × 794(922 KB) | Morn(對話 | 貢獻) | corrected color of a lake | |
2010年4月5日 (一) 00:56 | 942 × 794(1.01 MB) | Morn(對話 | 貢獻) | removed artifacts in shadows | ||
2010年4月4日 (日) 19:06 | 942 × 794(908 KB) | Morn(對話 | 貢獻) | compass rose | ||
2010年4月4日 (日) 14:49 | 942 × 794(899 KB) | Morn(對話 | 貢獻) | removed slight banding in the water | ||
2010年4月4日 (日) 14:41 | 942 × 794(904 KB) | Morn(對話 | 貢獻) | color version | ||
2010年4月4日 (日) 12:18 | 942 × 794(750 KB) | Morn(對話 | 貢獻) | scale | ||
2010年4月3日 (六) 20:55 | 942 × 794(652 KB) | Morn(對話 | 貢獻) | {{Information |Description={{en|1=Shaded terrain image of the Naples and Mount Vesuvius region from SRTM3 data. Each pixel corresponds to about 70x70 m.}} |Source={{own}} |Author=Morn the Gorn |Date=2010-03-04 |Permission= |other_ve |
無法覆蓋此檔案。
檔案用途
下列2個頁面有用到此檔案:
全域檔案使用狀況
以下其他 wiki 使用了這個檔案:
- ast.wikipedia.org 的使用狀況
- as.wikipedia.org 的使用狀況
- cs.wikipedia.org 的使用狀況
- el.wikipedia.org 的使用狀況
- en.wikipedia.org 的使用狀況
- eo.wikivoyage.org 的使用狀況
- es.wikipedia.org 的使用狀況
- et.wikipedia.org 的使用狀況
- fy.wikipedia.org 的使用狀況
- hu.wikipedia.org 的使用狀況
- hyw.wikipedia.org 的使用狀況
- id.wikipedia.org 的使用狀況
- it.wikipedia.org 的使用狀況
- it.wikibooks.org 的使用狀況
- it.wikiversity.org 的使用狀況
- ja.wikipedia.org 的使用狀況
- ka.wikipedia.org 的使用狀況
- ko.wikipedia.org 的使用狀況
- la.wikipedia.org 的使用狀況
- nl.wikipedia.org 的使用狀況
- nn.wikipedia.org 的使用狀況
- oc.wikipedia.org 的使用狀況
- ro.wikipedia.org 的使用狀況
- simple.wikipedia.org 的使用狀況
- sr.wikipedia.org 的使用狀況
- tl.wikipedia.org 的使用狀況
- tr.wikipedia.org 的使用狀況
- vi.wikipedia.org 的使用狀況
- zh.wikipedia.org 的使用狀況
分類:
- Maps of the metropolitan city of Naples
- Maps of Mount Vesuvius
- Maps of the Gulf of Naples
- Maps of Campi Flegrei
- Maps of Procida
- Maps of Naples
- Satellite pictures of Vesuvius
- Maps of Sorrento
- Maps of Capri
- DEM maps of Italy
- Topographic shading
- Hypsometric tints
- Language-neutral maps
- Volcanology in Italy
- Topographic maps of volcanoes in Italy
- Digital Elevation Models of volcanoes