Fasciculus:Vesuvius_SRTM3.png
From Wikipedia, the free encyclopedia
![Fasciculus:Vesuvius SRTM3.png](http://upload.wikimedia.org/wikipedia/commons/thumb/9/92/Vesuvius_SRTM3.png/711px-Vesuvius_SRTM3.png)
Mensura huius perspectionis: 711 × 599 elementa imaginalia. Aliae mensurae: 285 × 240 elementa imaginalia | 570 × 480 elementa imaginalia | 942 × 794 elementa imaginalia.
Sua resolutio (942 × 794 elementa imaginalia, magnitudo fasciculi: 922 chiliocteti, typus MIME: image/png)
Hic fasciculus apud Vicimedia Communia iacet; in aliis inceptis adhiberi potest. Contenta paginae descriptionis fasciculi subter monstrantur.
Summarium
DescriptioVesuvius 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.
|
Datum | |
Fons | Opus proprium |
Auctor |
Morn the Gorn compass rose from Maps_template-fr.svg: Eric Gaba (Sting - fr:Sting) |
Other versions |
Derivative works of this file: This file was derived from: 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)
Potestas usoris
I, the copyright holder of this work, hereby publish it under the following licenses:
![w:en:Creative Commons](https://upload.wikimedia.org/wikipedia/commons/thumb/7/79/CC_some_rights_reserved.svg/90px-CC_some_rights_reserved.svg.png)
![attributio](https://upload.wikimedia.org/wikipedia/commons/thumb/1/11/Cc-by_new_white.svg/24px-Cc-by_new_white.svg.png)
![aequa parte](https://upload.wikimedia.org/wikipedia/commons/thumb/d/df/Cc-sa_white.svg/24px-Cc-sa_white.svg.png)
This file is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported license.
- Tibi licet:
- communicare – copiare, distribuere et committere hoc opus
- to remix – to adapt the work
- His condicionibus:
- attributio – You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
- aequa parte – If you remix, transform, or build upon the material, you must distribute your contributions under the same or compatible license as the original.
![]() |
Licet hoc documentum exscribere vel distribuere vel demutare sub GNU Liberarum Litterarum Licentiae conditionibus in editione 1.2 aut in ulla editione recentiori a Fundatione Liberarum Programmationis Partium publicata; praeterquam Sectiones Immutabiles et Verba Involucra Adversa et Aversa. Licentiae exemplar praesto est in sectione intitulata GNU Free Documentation License.http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue |
Tibi typum permissionis ligere licet.
Annotations InfoField | This image is annotated: View the annotations at Commons |
Captions
Add a one-line explanation of what this file represents
Items portrayed in this file
depicts Anglica
some value
copyright status Anglica
copyrighted Anglica
4 Martii 2010
source of file Anglica
original creation by uploader Anglica
media type Anglica
image/png
Historia fasciculi
Presso die vel tempore fasciculum videbis, sicut tunc temporis apparuit.
Dies/Tempus | Minutio | Dimensiones | Usor | Sententia | |
---|---|---|---|---|---|
recentissima | 01:01, 5 Aprilis 2010 | ![]() | 942 × 794 (922 chiliocteti) | Morn | corrected color of a lake |
00:56, 5 Aprilis 2010 | ![]() | 942 × 794 (1.01 megaocteti) | Morn | removed artifacts in shadows | |
19:06, 4 Aprilis 2010 | ![]() | 942 × 794 (908 chiliocteti) | Morn | compass rose | |
14:49, 4 Aprilis 2010 | ![]() | 942 × 794 (899 chiliocteti) | Morn | removed slight banding in the water | |
14:41, 4 Aprilis 2010 | ![]() | 942 × 794 (904 chiliocteti) | Morn | color version | |
12:18, 4 Aprilis 2010 | ![]() | 942 × 794 (750 chiliocteti) | Morn | scale | |
20:55, 3 Aprilis 2010 | ![]() | 942 × 794 (652 chiliocteti) | 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 |
Nexus ad fasciculum
Ad hunc fasciculum nectunt:
Usus fasciculi per inceptus Vicimediorum
Quae incepta Vici fasciculo utuntur:
- Usus in ast.wikipedia.org
- Usus in as.wikipedia.org
- Usus in cs.wikipedia.org
- Usus in en.wikipedia.org
- Usus in eo.wikivoyage.org
- Usus in es.wikipedia.org
- Usus in et.wikipedia.org
- Usus in fy.wikipedia.org
- Usus in hu.wikipedia.org
- Usus in hyw.wikipedia.org
- Usus in id.wikipedia.org
- Usus in it.wikipedia.org
- Usus in it.wikibooks.org
- Usus in it.wikiversity.org
- Usus in ja.wikipedia.org
- Usus in ka.wikipedia.org
- Usus in ko.wikipedia.org
- Usus in nl.wikipedia.org
- Usus in nn.wikipedia.org
- Usus in oc.wikipedia.org
- Usus in ro.wikipedia.org
- Usus in simple.wikipedia.org
- Usus in sr.wikipedia.org
- Usus in tl.wikipedia.org
- Usus in tr.wikipedia.org
- Usus in vi.wikipedia.org
- Usus in zh.wikipedia.org