Modul:Shindo/data
Izgled
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