Modul:Shindo/data

Izvor: Wikipedija
function makeFromTemplateScale(scale, name, id_prefix, short)
	local returnVal = mw.clone(scale)
	returnVal.name = name or returnVal.name
	returnVal.id_prefix = id_prefix
	returnVal.short = short
	return returnVal
end

function addField(nameOfField, objectToWriteTo, objectToReadFrom)
	for k,v in pairs(objectToWriteTo) do
		if objectToReadFrom[k] ~= nil then v[nameOfField] = objectToReadFrom[k] end
	end
end

local data = {}

-- MMI and many other scales
data["mmi"] = {
	name = "Modificirana Mercallijeva skala intenziteta", -- Modified Mercalli intensity scale
	id_prefix = "mmi-",
	short = "MMI",
	colors = {
		{255, 255, 255},
		{191, 204, 255},
		{175, 217, 255},
		{160, 230, 255},
		{128, 255, 255},
		{122, 255, 147},
		{255, 255, 0},
		{255, 200, 0},
		{255, 145, 0},
		{255, 0, 0},
		{200, 0, 0},
		{164, 0, 0},
		{128, 0, 0}
	},
	order = {"I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII"},
	ranks = {
		["1"] = {
			id = "1",
			order = 1,
			label = "I"
		},
		["2"] = {
			id = "2",
			order = 2,
			label = "II"
		},
		["3"] = {
			id = "3",
			order = 4,
			label = "III"
		},
		["4"] = {
			id = "4",
			order = 5,
			label = "IV"
		},
		["5"] = {
			id = "5",
			order = 6,
			label = "V"
		},
		["6"] = {
			id = "6",
			order = 7,
			label = "VI"
		},
		["7"] = {
			id = "7",
			order = 8,
			label = "VII"
		},
		["8"] = {
			id = "8",
			order = 9,
			label = "VIII"
		},
		["9"] = {
			id = "9",
			order = 10,
			label = "IX"
		},
		["10"] = {
			id = "10",
			order = 11,
			label = "X"
		},
		["11"] = {
			id = "11",
			order = 12,
			label = "XI"
		},
		["12"] = {
			id = "12",
			order = 13,
			label = "XII"
		}
	}
}

-- Roman numeral aliases
data["mmi"].ranks["I"] = data["mmi"].ranks["1"]
data["mmi"].ranks["II"] = data["mmi"].ranks["2"]
data["mmi"].ranks["III"] = data["mmi"].ranks["3"]
data["mmi"].ranks["IV"] = data["mmi"].ranks["4"]
data["mmi"].ranks["V"] = data["mmi"].ranks["5"]
data["mmi"].ranks["VI"] = data["mmi"].ranks["6"]
data["mmi"].ranks["VII"] = data["mmi"].ranks["7"]
data["mmi"].ranks["VIII"] = data["mmi"].ranks["8"]
data["mmi"].ranks["IX"] = data["mmi"].ranks["9"]
data["mmi"].ranks["X"] = data["mmi"].ranks["10"]
data["mmi"].ranks["XI"] = data["mmi"].ranks["11"]
data["mmi"].ranks["XII"] = data["mmi"].ranks["12"]

-- JMA, CWS, etc.
data["jma"] = {
	name = "Ljestvica seizmičkog intenziteta Japanske meteorološke agencije", --Japan Meteorological Agency seismic intensity scale
	id_prefix = "jma_",
	short = "JMA",
	order = {"0", "1", "2", "3", "4", "5-", "5+", "6-", "6+", "7"},
	colors = {
		{255, 255, 255},
		{242, 242, 255},
		{160, 230, 255},
		{0, 65, 255},
		{250, 230, 150},
		{255, 230, 0},
		{255, 153, 0},
		{255, 40, 0},
		{165, 0, 33},
		{180, 0, 104}
	},
	ranks = {
		["0"] = {
			id = "0",
			order = 1,
			label = "0"
		},
		["1"] = {
			id = "1",
			order = 2,
			label = "1"
		},
		["2"] = {
			id = "2",
			order = 3,
			label = "2"
		},
		["3"] = {
			id = "3",
			order = 4,
			label = "3"
		},
		["4"] = {
			id = "4",
			order = 5,
			label = "4"
		},
		["5-"] = {
			id = "5-",
			order = 6,
			label = "5−"
		},
		["5"] = {
			id = "5",
			order = 6,
			label = "5"
		},
		["5+"] = {
			id = "5+",
			order = 7,
			label = "5+"
		},
		["6-"] = {
			id = "6-",
			order = 8,
			label = "6−"
		},
		["6"] = {
			id = "6",
			order = 8,
			label = "6"
		},
		["6+"] = {
			id = "6+",
			order = 9,
			label = "6+"
		},
		["7"] = {
			id = "7",
			order = 10,
			label = "7"
		}
	}
}

data["cwa"] = makeFromTemplateScale(data.jma, "Ljestvica seizmičkog intenziteta Središnje  meteorološke uprave", "cwa_", "CWA") -- Central Weather Administration seismic intensity scale
data["csis"] = makeFromTemplateScale(data.mmi, "Kineska ljestvica seizmičkog intenziteta", "csis-", "CSIS") -- China seismic intensity scale
data["ems-98"] = makeFromTemplateScale(data.mmi, "Europska makroseizmička ljestvica", "ems-98-", "EMS-98") -- European macroseismic scale
data["msk-64"] = makeFromTemplateScale(data.mmi, "Medvedev–Sponheuer–Karnikova ljestvica", "msk-", "MSK-64") -- Medvedev–Sponheuer–Karnik scale
data["rfs"] = makeFromTemplateScale(data.mmi, "Rossi–Forelova ljestvica", "rfs-", "RFS") -- Rossi–Forel scale
data["rfs"].ranks["11"] = nil
data["rfs"].ranks["12"] = nil
data["rfs"].ranks["XI"] = nil
data["rfs"].ranks["XII"] = nil
data["rfs"].order[12] = nil
data["rfs"].order[11] = nil
data["peis"] = makeFromTemplateScale(data.rfs, "PHIVOLCS ljestvica intenziteta potresa", "peis-", "PEIS") -- PHIVOLCS earthquake intensity scale

-- ranks only present with USGS
data["mmi"].ranks["2-3"] = {
	id = "2",
	order = 3,
	label = "II–III"
}

data["mmi"].ranks["II-III"] = data["mmi"].ranks["2-3"]

data["mmi"].ranks["10+"] = {
	id = "10",
	order = 11,
	label = "X+"
}

data["mmi"].ranks["X+"] = data["mmi"].ranks["10+"]

data["mmi"].order = {"I", "II", "II-III", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "X+", "XI", "XII"}

-- Add categorical rankings to data
addField("category", data["mmi"].ranks,
	{
        		
        ["1"] = "Nije se osjetilo",	-- "Not felt"
        ["2"] = "Slabo",			-- "Weak"
        ["3"] = "Slabo",			-- "Weak"
        ["2-3"] = "Slabo",			-- "Weak"
        ["4"] = "Lagano",			-- "Light"
        ["5"] = "Umjereno", 		-- "Moderate"
        ["6"] = "Jako", 			-- "Strong"
        ["7"] = "Vrlo jako",		-- "Very strong"
        ["8"] = "Ozbiljno", 		-- "Severe"
        ["9"] = "Nasilno",			-- "Violent"
        ["10+"] = "Ekstremno",		-- "Extreme"
        ["10"] = "Ekstremno",		-- "Extreme"
        ["11"] = "Ekstremno",		-- "Extreme"
        ["12"] = "Ekstremno"		-- "Extreme"
	}
)

addField("category", data["ems-98"].ranks,
	{
		["1"] = "Nije se osjetilo",		-- "Not felt",
        ["2"] = "Jedva se osjetilo",	-- "Scarcely felt",
        ["3"] = "Slabo",				-- "Weak",
        ["4"] = "Uglavnom primjećeno",	-- "Largely observed",
        ["5"] = "Jako",					-- "Strong",
        ["6"] = "Mala oštećenja",		-- "Slightly damaging",
        ["7"] = "Šteta",				-- "Damaging",
        ["8"] = "Velika šteta",			-- "Heavily damaging",
        ["9"] = "Destruktivno",			-- "Destructive",
        ["10"] = "Vrlo destruktivno",	-- "Very destructive",
        ["11"] = "Razorno",				-- "Devastating",
        ["12"] = "Potpuno razarajuće"	-- "Completely devastating"
	}
)

addField("category", data["msk-64"].ranks,
	{
		["1"] = "Nije se osjetilo",		-- "Not perceptible",
		["2"] = "Jedva se osjetilo",	-- "Hardly perceptible"
		["3"] = "Slabo", 				-- "Weak",
		["4"] = "Uglavnom primjećeno",	-- "Largely observed",
		["5"] = "Prilično jako",		-- "Fairly strong",
		["6"] = "Jako", 				-- "Strong",
		["7"] = "Vrlo jako",			-- "Very strong",
		["8"] = "Šteta",				-- "Damaging",
		["9"] = "Destruktivno",			-- "Destructive",
		["10"] = "Razorno",				-- "Devastating",
		["11"] = "Katastrofično",		-- "Catastrophic",
		["12"] = "Vrlo katastrofično"	-- "Very catastrophic"
	}
)

addField("category", data["peis"].ranks,
	{
		["1"] = "Jedva se osjetilo",	-- "Scarcely perceptible",
		["2"] = "Lagano se osjetilo",	-- "Slightly felt",
		["3"] = "Slabo",				-- "Weak",
		["4"] = "Umjerneo jako",		-- "Moderately strong",
		["5"] = "Jako",					-- "Strong",
		["6"] = "Vrlo jako",			-- "Very strong",
		["7"] = "Destruktivno",			-- "Destructive",
		["8"] = "Vrlo destruktivno",	-- "Very destructive",
		["9"] = "Razorno",				-- "Devastating",
		["10"] = "Potpuno razarajuće"	-- "Completely devastating"
	}
)

addField("category", data["rfs"].ranks,
	{
		["1"] = "Mikroseizmičko podrhtavanje",			-- "Microseismic tremor",
		["2"] = "Izuzetno slabo podrhtavanje",			-- "Extremely feeble tremor",
		["3"] = "Slabo podrhtavanje",					-- "Feeble tremor",
		["4"] = "Lagano podrhtavanje",					-- "Slight tremor",
		["5"] = "Umjereno podrhtavanje",				-- "Moderate tremor",
		["6"] = "Jako podrhtavanje",					-- "Strong tremor",
		["7"] = "Vrlo jako podrhtavanje",				-- "Very strong tremor",
		["8"] = "Oštećujuće podrhtavanje",				-- "Damaging tremor",
		["9"] = "Razorno podrhtavanje", 				-- "Devastating tremor",
		["10"] = "Drhtanje ekstremno visokog intenzitet"--  "Extremely high intensity tremor"
	}
)

-- lower values for peak ground acceleration for MMI see https://usgs.github.io/shakemap/manual4_0/ug_intensity.html
-- all values in units of %g and will need to be converted for other uses
-- also categorization is done in buckets with averages precomputed in Excel
--[[
Rank	PGA listed	Average for bottom buckets
1	0.05	0.175
2-3	0.3	1.55
4	2.8	4.5
5	6.2	9.1
6	12	17
7	22	31
8	40	57.5
9	75	107
10+	139	
]]

addField("pga", data["mmi"].ranks, {
	["1"] = 0,
	["2-3"] = 0.175,
	["4"] = 1.55,
	["5"] = 4.5,
	["6"] = 9.1,
	["7"] = 17,
	["8"] = 31,
	["9"] = 57.5,
	["10+"] = 107
})

data["mmi"].ranksSorted = { "1", "2-3", "4", "5", "6", "7", "8", "9", "10+" }

-- same for JMA (values from [[Japan Meterological Agency seismic intensity scale]] and converted back to %g's)
addField("pga", data["jma"].ranks, {
	["0"] = 0,
	["1"] = 0.08,
	["2"] = 0.26,
	["3"] = 0.81,
	["4"] = 2.55,
	["5-"] = 8.16,
	["5+"] = 14.29,
	["6-"] = 25.51,
	["6+"] = 32.14,
	["7"] = 40
})

data["jma"].ranksSorted = { "0", "1", "2", "3", "4", "5-", "5+", "6-", "6+", "7" }

return data