Module:Infobox/Fonctions/Centrale électrique
Apparence
[voir] [modifier] [historique] [purger]
Cette page définit un module d'infobox.
La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis la page Modèle:Documentation module d'infobox. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (créer).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
local p = {}
local general = require "Module:Infobox/Fonctions"
local localdata = require "Module:Infobox/Localdata"
local wikidata = require "Module:Wikidata"
local address = require "Module:Adresse"
local countrymodule = require "Module:Country data"
local linguistique = require "Module:Linguistique"
function p.operateur() -- si l'operateur est le même que le propriétaire dans wikidata : ne pas afficher
if localdata['opérateur'] then
return {type = 'row', label = 'Opérateur', value = 'opérateur'}
elseif localdata['concessionnaire'] then
return {type = 'row', label = 'Opérateur', value = 'concessionnaire'}
elseif (wikidata.formatStatements{property = "P127", displayformat = "raw", entity= localdata.item} == wikidata.formatStatements{property = "P137", displayformat = "raw", entity = localdata.item}) then
return nil
else
return {type = 'row', label = 'Opérateur', value = 'opérateur', property = 'P137'}
end
end
function p.facteurcharge() --facteur de charge : valeur dans 'Facteur charge' ou calcul a partir de P4131 et P2109
if localdata['facteur charge'] then
return {type = 'row', label = '[[Facteur de charge (électricité)|Facteur de charge]]', value = 'facteur charge'}
elseif localdata['Facteur charge'] then
return {type = 'row', label = '[[Facteur de charge (électricité)|Facteur de charge]]', value = 'Facteur charge'}
elseif localdata['facteur_utilisation'] then
return {type = 'row', label = '[[Facteur de charge (électricité)|Facteur de charge]]', value = 'facteur_utilisation'}
elseif localdata['facteur_utilisation 2'] then
return {type = 'row', label = '[[Facteur de charge (électricité)|Facteur de charge]]', value = 'facteur_utilisation 2'}
else
local production = wikidata.formatStatements{entity = localdata.item, property = 'P4131', numval = 1, sorttype = "inverted", showunit = '-', targetunit = 'Wh', displayformat = "raw"}
local puissance = wikidata.formatStatements{entity = localdata.item, property = 'P2109', numval = 1, sorttype = "inverted", showunit = '-', targetunit = 'w', displayformat = "raw"}
if tonumber(production) and tonumber(puissance) then
local fcharge = tonumber(production) / (tonumber(puissance) * 365 * 24)*100
return {type = 'row', label = '[[Facteur de charge (électricité)|Facteur de charge]]', value = function() return math.floor(fcharge+0.5).." %" end}
else
return nil
end
end
end
function p.densitepuissance() --densité de puissance : valeur dans 'Densité puissance' ou calcul a partir de P4131 et P2046
if localdata['densité puissance'] then
return {type = 'row', label = '[[Densité de puissance surfacique|Densité de puissance]]', value = 'densité puissance'}
elseif localdata['Densité puissance'] then
return {type = 'row', label = '[[Densité de puissance surfacique|Densité de puissance]]', value = 'Densité puissance'}
else
local production = wikidata.formatStatements{entity = localdata.item, property = 'P4131', numval = 1, sorttype = "inverted", showunit = '-', targetunit = 'Wh', displayformat = "raw"}
local surface = wikidata.formatStatements{entity = localdata.item, property = 'P2046', numval = 1, sorttype = "inverted", showunit = '-', targetunit = 'sqm', displayformat = "raw"}
if tonumber(production) and tonumber(surface) then
local dpuis = tonumber(production) / (tonumber(surface) * 365 * 24)
return {type = 'row', label = '[[Densité de puissance surfacique|Densité de puissance]]', value = function() return math.floor(dpuis+0.5).." W/m²" end}
else
return nil
end
end
end
function p.adminlocation() -- Fonction copiée de Module:Infobox/Fonctions/Bâtiment et adaptée à l'infobox barrage et centrale
if not (localdata['province'] or localdata['subdivision 1'] or localdata['subdivision 2'] or localdata['subdivision 3'] or localdata['Subdivision 1'] or localdata['Subdivision 2'] or localdata['Subdivision 3']) then
local country = wikidata.getIds(localdata.item, {property = "P17"})
if country and #country > 1 then
local countries = {}
for i, j in pairs(country) do
newcountry = countrymodule.standarddisplay(j)
table.insert(countries, newcountry)
end
return {type = 'row', label = "Pays", value = function() return linguistique.conj(countries, 'new line') end }
else
return {type = 'row', label = "Localisation", value = function() return address.fullAddress(localdata.item) end }
end
end
local function formatCountry(country)
if not country then
return nil
end
local val, success = countrymodule.standarddisplay(country) -- val = nil si country n'est pas reconnu
if success then
return val
end
end
local countries = {}
newcountry = formatCountry(localdata['pays']) or formatCountry(localdata['Pays']) or localdata['pays'] or localdata['Pays']
table.insert(countries, newcountry)
if localdata['pays 2'] or localdata['Pays 2'] then
newcountry = formatCountry(localdata['pays 2']) or formatCountry(localdata['Pays 2']) or localdata['pays 2'] or localdata['Pays 2']
table.insert(countries, newcountry)
end
return {
type = 'multi',
rows = {
{type = 'row', label = "Pays", value = function() return linguistique.conj(countries, 'new line') end },
{type = 'row', label = 'Province', value = 'province'},
{
type = 'row',
label = function ( localdata )
return localdata[ "nom subdivision 1" ] or localdata[ "Subdivision 1 type" ]
end,
value = function ( localdata )
return localdata[ "subdivision 1" ] or localdata[ "Subdivision 1" ]
end,
},
{
type = 'row',
label = function ( localdata )
return localdata[ "nom subdivision 2" ] or localdata[ "Subdivision 2 type" ]
end,
value = function ( localdata )
return localdata[ "subdivision 2" ] or localdata[ "Subdivision 2" ]
end,
},
{
type = 'row',
label = function ( localdata )
return localdata[ "nom subdivision 3" ] or localdata[ "Subdivision 3 type" ]
end,
value = function ( localdata )
return localdata[ "subdivision 3" ] or localdata[ "Subdivision 3" ]
end,
},
{
type = 'row',
label = function ( localdata )
return localdata[ "nom subdivision 4" ] or localdata[ "Subdivision 4 type" ]
end,
value = function ( localdata )
return localdata[ "subdivision 4" ] or localdata[ "Subdivision 4" ]
end,
},
}
}
end
return p