172 lines
9.7 KiB
Swift
172 lines
9.7 KiB
Swift
//
|
|
// EQNData.swift
|
|
// Earthquake Network
|
|
//
|
|
// Created by Busi Andrea on 26/08/2020.
|
|
// Copyright © 2020 Earthquake Network. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
|
|
@objc class EQNData: NSObject {
|
|
@objc public static let MaxRaggioSisma = "100000"
|
|
@objc public static let DefaultRaggioSisma = EQNGenericValue(value:MaxRaggioSisma, display:"radius_any_distance")
|
|
@objc public static let DefaultMagitudoDebole = EQNGenericValue(value:"2.0", display:"official_magnitude_value_20")
|
|
@objc public static let DefaultMagitudoForte = EQNGenericValue(value:"5.5", display:"official_magnitude_value_55")
|
|
@objc public static let DefaultSeismicToNotify = EQNGenericValue(value: "0", display: "eqn_intensity_any")
|
|
@objc public static let DefaultPeriodoTemporale = EQNGenericValue(value: "1440", display: "report_timeframe_one_day")
|
|
|
|
// MARK: - Public
|
|
|
|
@objc class func raggioSismi() -> [EQNGenericValue] {
|
|
[
|
|
EQNGenericValue(value:"50", display:"50 km"),
|
|
EQNGenericValue(value:"100", display:"100 km"),
|
|
EQNGenericValue(value:"200", display:"200 km"),
|
|
EQNGenericValue(value:"300", display:"300 km"),
|
|
EQNGenericValue(value:"400", display:"400 km"),
|
|
EQNGenericValue(value:"500", display:"500 km"),
|
|
EQNGenericValue(value:"600", display:"600 km"),
|
|
EQNGenericValue(value:"800", display:"800 km"),
|
|
EQNGenericValue(value:"1000", display:"1000 km"),
|
|
EQNGenericValue(value:"2000", display:"2000 km"),
|
|
EQNGenericValue(value:"4000", display:"4000 km"),
|
|
EQNGenericValue(value:Self.MaxRaggioSisma, display:"radius_any_distance"),
|
|
]
|
|
}
|
|
|
|
/// Returns the EQNGenericValue for the given value, or the default one
|
|
/// - Parameter value: Sisma value to search
|
|
/// - Returns: Found value or default
|
|
@objc class func raggioSisma(for value: String?) -> EQNGenericValue {
|
|
if let value = value, let genericValue = Self.raggioSismi().first(where: { $0.value == value }) {
|
|
return genericValue
|
|
}
|
|
return Self.DefaultRaggioSisma
|
|
}
|
|
|
|
@objc class func magitudoDeboli() -> [EQNGenericValue] {
|
|
[
|
|
EQNGenericValue(value:"0.0", display:"official_magnitude_value_00"),
|
|
EQNGenericValue(value:"0.5", display:"official_magnitude_value_05"),
|
|
EQNGenericValue(value:"1.0", display:"official_magnitude_value_10"),
|
|
EQNGenericValue(value:"1.5", display:"official_magnitude_value_15"),
|
|
EQNGenericValue(value:"2.0", display:"official_magnitude_value_20"),
|
|
EQNGenericValue(value:"2.5", display:"official_magnitude_value_25"),
|
|
EQNGenericValue(value:"3.0", display:"official_magnitude_value_30"),
|
|
EQNGenericValue(value:"3.5", display:"official_magnitude_value_35"),
|
|
EQNGenericValue(value:"4.0", display:"official_magnitude_value_40"),
|
|
EQNGenericValue(value:"4.5", display:"official_magnitude_value_45"),
|
|
EQNGenericValue(value:"5.0", display:"official_magnitude_value_50"),
|
|
EQNGenericValue(value:"5.5", display:"official_magnitude_value_55")
|
|
]
|
|
}
|
|
|
|
/// Returns the EQNGenericValue for the given value, or the default one
|
|
/// - Parameter value: Magnitudo value to search
|
|
/// - Returns: Found value or default
|
|
@objc class func magitudoDebole(for value: String?) -> EQNGenericValue {
|
|
if let value = value, let genericValue = Self.magitudoDeboli().first(where: { $0.value == value }) {
|
|
return genericValue
|
|
}
|
|
return Self.DefaultMagitudoDebole
|
|
}
|
|
|
|
@objc class func magitudoForti() -> [EQNGenericValue] {
|
|
[
|
|
EQNGenericValue(value:"5.5", display:"official_magnitude_value_55"),
|
|
EQNGenericValue(value:"6.0", display:"official_magnitude_value_60"),
|
|
EQNGenericValue(value:"6.5", display:"official_magnitude_value_65"),
|
|
EQNGenericValue(value:"7.0", display:"official_magnitude_value_70"),
|
|
EQNGenericValue(value:"7.5", display:"official_magnitude_value_75")
|
|
]
|
|
}
|
|
|
|
/// Returns the EQNGenericValue for the given value, or the default one
|
|
/// - Parameter value: Magnitudo value to search
|
|
/// - Returns: Found value or default
|
|
@objc class func magitudoForte(for value: String?) -> EQNGenericValue {
|
|
if let value = value, let genericValue = Self.magitudoForti().first(where: { $0.value == value }) {
|
|
return genericValue
|
|
}
|
|
return Self.DefaultMagitudoForte
|
|
}
|
|
|
|
@objc class func seismicNetworks() -> [EQNSeismicNetwork] {
|
|
[
|
|
EQNSeismicNetwork(acronym: "USGS", country: NSLocalizedString("configuration_countries_united_states", comment: ""), extended: ""),
|
|
EQNSeismicNetwork(acronym: "INGV", country: NSLocalizedString("configuration_countries_italy", comment: ""), extended: ""),
|
|
EQNSeismicNetwork(acronym: "IGN", country: NSLocalizedString("configuration_countries_spain", comment: ""), extended: ""),
|
|
EQNSeismicNetwork(acronym: "UOA", country: NSLocalizedString("configuration_countries_greece", comment: ""), extended: ""),
|
|
EQNSeismicNetwork(acronym: "EMSC", country: NSLocalizedString("configuration_countries_france", comment: ""), extended: ""),
|
|
EQNSeismicNetwork(acronym: "EMSC", country: NSLocalizedString("configuration_countries_croatia", comment: ""), extended: ""),
|
|
EQNSeismicNetwork(acronym: "CSI", country: NSLocalizedString("configuration_countries_china", comment: ""), extended: ""),
|
|
EQNSeismicNetwork(acronym: "JMA", country: NSLocalizedString("configuration_countries_japan", comment: ""), extended: ""),
|
|
EQNSeismicNetwork(acronym: "Ineter", country: NSLocalizedString("configuration_countries_nicaragua", comment: ""), extended: ""),
|
|
EQNSeismicNetwork(acronym: "SSN", country: NSLocalizedString("configuration_countries_mexico", comment: ""), extended: ""),
|
|
EQNSeismicNetwork(acronym: "SGC", country: NSLocalizedString("configuration_countries_colombia", comment: ""), extended: ""),
|
|
EQNSeismicNetwork(acronym: "RSN", country: NSLocalizedString("configuration_countries_costa_rica", comment: ""), extended: ""),
|
|
EQNSeismicNetwork(acronym: "CSN", country: NSLocalizedString("configuration_countries_cila", comment: ""), extended: ""),
|
|
EQNSeismicNetwork(acronym: "FUNVISIS", country: NSLocalizedString("configuration_countries_venezuela", comment: ""), extended: ""),
|
|
EQNSeismicNetwork(acronym: "GeoNet", country: NSLocalizedString("configuration_countries_new_zeland", comment: ""), extended: ""),
|
|
EQNSeismicNetwork(acronym: "INPRES", country: NSLocalizedString("configuration_countries_argentina", comment: ""), extended: ""),
|
|
EQNSeismicNetwork(acronym: "IGEPN", country: NSLocalizedString("configuration_countries_ecuador", comment: ""), extended: ""),
|
|
EQNSeismicNetwork(acronym: "IGP", country: NSLocalizedString("configuration_countries_peru", comment: ""), extended: ""),
|
|
EQNSeismicNetwork(acronym: "UASD", country: NSLocalizedString("configuration_countries_dominican_republic", comment: ""), extended: ""),
|
|
EQNSeismicNetwork(acronym: "NCS", country: NSLocalizedString("configuration_countries_india", comment: ""), extended: ""),
|
|
EQNSeismicNetwork(acronym: "RSPR", country: NSLocalizedString("configuration_countries_puerto_rico", comment: ""), extended: ""),
|
|
EQNSeismicNetwork(acronym: "BDTIM", country: NSLocalizedString("configuration_countries_turkey", comment: ""), extended: ""),
|
|
EQNSeismicNetwork(acronym: "EMSC", country: NSLocalizedString("configuration_countries_other", comment: ""), extended: "")
|
|
]
|
|
}
|
|
|
|
@objc class func seismicNetworkAcronyms() -> [String] {
|
|
Self.seismicNetworks().map { $0.acronym }
|
|
}
|
|
|
|
@objc class func seismicNetworkCountries() -> [String] {
|
|
Self.seismicNetworks().map { $0.country }
|
|
}
|
|
|
|
@objc class func seismic(for acronym: String?) -> EQNSeismicNetwork? {
|
|
guard let acronym = acronym else { return nil }
|
|
return Self.seismicNetworks().first(where: { $0.acronym == acronym })
|
|
}
|
|
|
|
@objc class func seismicToNotify() -> [EQNGenericValue] {
|
|
[
|
|
EQNGenericValue(value:"0", display:"eqn_intensity_any"),
|
|
EQNGenericValue(value:"1", display:"eqn_intensity_strong")
|
|
]
|
|
}
|
|
|
|
@objc class func seismicToNotify(for value: String?) -> EQNGenericValue {
|
|
if let value = value, let genericValue = Self.seismicToNotify().first(where: { $0.value == value }) {
|
|
return genericValue
|
|
}
|
|
return Self.DefaultSeismicToNotify
|
|
}
|
|
|
|
@objc class func periodiTemporali() -> [EQNGenericValue] {
|
|
[
|
|
EQNGenericValue(value: "10", display: "10 minuti"),
|
|
EQNGenericValue(value: "60", display: "report_timeframe_one_hour"),
|
|
EQNGenericValue(value: "120", display: "report_timeframe_two_hours"),
|
|
EQNGenericValue(value: "360", display: "report_timeframe_six_hours"),
|
|
EQNGenericValue(value: "720", display: "report_timeframe_twelve_hours"),
|
|
EQNGenericValue(value: "1440", display: "report_timeframe_one_day")
|
|
]
|
|
}
|
|
|
|
/// Returns the EQNGenericValue for the given value, or the default one
|
|
/// - Parameter value: Temporal unit value to search
|
|
/// - Returns: Found value or default
|
|
@objc class func periodoTemporale(for value: String?) -> EQNGenericValue {
|
|
if let value = value, let genericValue = Self.periodiTemporali().first(where: { $0.value == value }) {
|
|
return genericValue
|
|
}
|
|
return Self.DefaultPeriodoTemporale
|
|
}
|
|
}
|