Fayl:Vesuvius SRTM3.png

Vikipediya, azad ensiklopediya
Naviqasiyaya keç Axtarışa keç

Faylın orijinalı(942 × 794 piksel, fayl həcmi: 922 KB, MIME növü: image/png)

Bu fayl "Vikimedia Commons"dadır
və digər layihələrdə istifadə edilə bilər.
təsvir səhifəsi
təsvir səhifəsi
Faylın təsvir səhifəsinə get

Xülasə

İzah
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.


Note: This image has annotations, but you have to navigate to the Wikimedia Commons description page to see them. Or (if you are logged in at Wikipedia) go to "My preferences -> Gadgets" and enable ImageAnnotator.
Tarix
Mənbə Öz işi
Müəllif Morn the Gorn
compass rose from Maps_template-fr.svg: Eric Gaba (Sting - fr:Sting)
Digər versiyalar

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)

Lisenziya

I, the copyright holder of this work, hereby publish it under the following licenses:
w:az:Creative Commons
istinad bənzər paylaşma
Bu fayl Creative Commons Attribution-Share Alike 3.0 Unported lisenziyası altında yayımlanır.
Azadsınız:
  • paylaşmaq – əsəri köçürmək, paylamaq və ötürmək üçün
  • remiks etmək – əsəri adaptasiya etmək
Aşağıdakı şərtlərə riayət etməklə:
  • istinad – Müvafiq kredit verməlisiniz, lisenziyaya bir keçid verməlisiniz və dəyişikliklərin olub olmadığını bildirməlisiniz. Bunu hər hansı bir ağlabatan şəkildə edə bilərsiniz, ancaq lisenziyalaşdırıcının sizi və ya istifadənizi təsdiqləməsini təklif edən bir şəkildə deyil.
  • bənzər paylaşma – Əsəri remix edirsinizsə, dəyişdirirsinizsə və ya üzərində iş aparırsınızsa, öz töhfələrinizi orijinalda olduğu kimi eyni və ya uyğun lisenziya altında yayımlamalısınız.
GNU head Bu sənədi GNU Azad Sənədləşdirmə Lisenziyası, Versiya 1.2 və ya Azad Proqram Fondu tərəfindən nəşr olunan hər hansı sonrakı versiya şərtlərinə əsasən dəyişməz bölmələr, ön qapaq mətnləri və arxa qapaq mətnləri olmadan köçürmək, yayımlamaq və / və ya dəyişdirmək üçün icazə verilir; Lisenziyanın bir nüsxəsi GNU Azad Sənədləşdirmə Lisenziyası adlı hissəyə daxil edilmişdir.
İstədiyiniz lisenziyanı seçə bilərsiniz.
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

təsvir edir

copyrighted ingilis

4 mart 2010

media type ingilis

image/png

Faylın tarixçəsi

Faylın əvvəlki versiyasını görmək üçün gün/tarix bölməsindəki tarixlərə klikləyin.

Tarix/VaxtKiçik şəkilÖlçülərİstifadəçiŞərh
indiki01:01, 5 aprel 201001:01, 5 aprel 2010 tarixindəki versiyanın kiçildilmiş görüntüsü942 × 794 (922 KB)Morncorrected color of a lake
00:56, 5 aprel 201000:56, 5 aprel 2010 tarixindəki versiyanın kiçildilmiş görüntüsü942 × 794 (1,01 MB)Mornremoved artifacts in shadows
19:06, 4 aprel 201019:06, 4 aprel 2010 tarixindəki versiyanın kiçildilmiş görüntüsü942 × 794 (908 KB)Morncompass rose
14:49, 4 aprel 201014:49, 4 aprel 2010 tarixindəki versiyanın kiçildilmiş görüntüsü942 × 794 (899 KB)Mornremoved slight banding in the water
14:41, 4 aprel 201014:41, 4 aprel 2010 tarixindəki versiyanın kiçildilmiş görüntüsü942 × 794 (904 KB)Morncolor version
12:18, 4 aprel 201012:18, 4 aprel 2010 tarixindəki versiyanın kiçildilmiş görüntüsü942 × 794 (750 KB)Mornscale
20:55, 3 aprel 201020:55, 3 aprel 2010 tarixindəki versiyanın kiçildilmiş görüntüsü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

Bu faylı istifadə edən səhifə yoxdur.

Faylın qlobal istifadəsi

Bu fayl aşağıdakı vikilərdə istifadə olunur: