Article

Tests

BeginPackage["Wikicode`SolarCycle`"]

TSI::usage = "TSI[date] gives the measured total solar irradiance on \
the specified date. TSI[planet,date] calculates an approximate total \
solar irradiance for the given planet on the specified date."

Begin["`Private`"]

tsiData = 
  DateList[ToString@#[[1]]][[;; 3]] -> 
     If[#[[3]] == -99, Missing["NotAvailable"], #[[3]]] & /@ 
   Cases[Import[
     "ftp://ftp.pmodwrc.ch/pub/data/irradiance/composite/DataPlots/\
composite_d41_62_1302.dat"], {_Integer, _Real, _Real}];

TSI[date_List] := 
 If[DateDifference[tsiData[[1, 1]], date] >= 0 >= 
   DateDifference[tsiData[[-1, 1]], date], date /. tsiData, 
  Missing["NotAvailable"]]

TSI[planet_String?(AstronomicalData[#, "Planet"] &), date_List] :=
 3.045*^25/(Norm@AstronomicalData[planet, {"Position", date}])^2

End[]
EndPackage[]