/// <summary> /// Anlegen grundlegender Definitionstabellen /// </summary> public static void InitBaseTables() { try { using (var ctx = new KeplerDBEntities()) { // Basistabellen füllen // 1) Himmelskörper mko.algorithm.ForEachEnumMember<global::Kepler.Bo.HimmelskoerperTypen>.execute((Name, Id) => { var Entity = ctx.HimmelskoerperTypenTab.Create(); Entity.ID = Id; Entity.Name = Name; ctx.HimmelskoerperTypenTab.Add(Entity); }); // 2) Länder Tuple<string, string>[] Laender = { new Tuple<string, string>("AT", "Österreich"), new Tuple<string, string>("CH", "Schweiz"), new Tuple<string, string>("CN", "China"), new Tuple<string, string>("D", "Deutschland"), new Tuple<string, string>("EU", "Europäische Union- ESA"), new Tuple<string, string>("FR", "Frankreich"), new Tuple<string, string>("GB", "Groß Britanien"), new Tuple<string, string>("IL", "Israel"), new Tuple<string, string>("IN", "Indien"), new Tuple<string, string>("IR", "Iran"), new Tuple<string, string>("JP", "Japan"), new Tuple<string, string>("KP", "Nord Korea"), new Tuple<string, string>("KZ", "Kasachstan"), new Tuple<string, string>("RU", "Russland"), new Tuple<string, string>("SU", "Sowjetunion"), new Tuple<string, string>("UA", "Ukraine"), new Tuple<string, string>("USA", "Vereinigte Staaten von Amerika") }; foreach (var tp in Laender) { var Entity = ctx.LaenderTab.Create(); Entity.Laenderkennzeichen = tp.Item1; Entity.Name = tp.Item2; ctx.LaenderTab.Add(Entity); } // 3) Raumschiff- Aufgaben string[] Aufgaben = { "Militär", "Metrologie", "Wissenschaft", "Land- und Forstwirtschaft", "Navigation", "Telekommunikation", "Prestige" }; foreach (var Aufg in Aufgaben) { var Entity = ctx.AufgabenTab.Create(); Entity.Aufgabenbeschreibung = Aufg; ctx.AufgabenTab.Add(Entity); } // 4) Spektralklassen var SpektCo = new Container.SpektralklassenCo(ctx); foreach (var spekt in global::Kepler.Defs.Spektralklasse.ListeSpektralklassen.Keys) { var spektralklasse = global::Kepler.Defs.Spektralklasse.ListeSpektralklassen[spekt]; global::Kepler.ISpektralklasse Entity = SpektCo.CreateBo(); Entity.SpektralklasseId = spektralklasse.SpektralklasseId; Entity.Farbe = spektralklasse.Farbe; Entity.Tmin = spektralklasse.Tmin; Entity.Tmax = spektralklasse.Tmax; Entity.Masse_Hauptreihenstern_in_Sonnenmassen = spektralklasse.Masse_Hauptreihenstern_in_Sonnenmassen; SpektCo.AddToCollection((Spektralklasse)Entity); } ctx.SaveChanges(); } } catch (Exception ex) { string msg = mko.TraceHlp.FormatErrMsg("KeplerDBInstaller", "CreateDB", ex.Message); throw new Exception(msg, ex); } }
/// <summary> /// Datenbank mit Datensätzen zu Sternen, Planeten und Monde füllen /// </summary> public static void FillDBWithStarsPlanetsAndMoons() { try { using (var ctx = new KeplerDBEntities()) { mko.Newton.Init.Do(); // Container für Geschäftsobjekte anlegen var Spektralklassen = new Container.SpektralklassenCo(ctx); var Galaxieen = new Container.GalaxieenCo(ctx); var Sterne = new Container.SterneCo(ctx); var Planeten = new Container.PlanetenCo(ctx); var Monde = new Container.MondeCo(ctx); var Raumschiffe = new Container.RaumschiffeCo(ctx); var TypUrknall = ctx.HimmelskoerperTypenTab.Single(r => r.ID == (int)global::Kepler.Bo.HimmelskoerperTypen.Urknall); var TypGalaxiekern = ctx.HimmelskoerperTypenTab.Single(r => r.ID == (int)global::Kepler.Bo.HimmelskoerperTypen.Galaxiekern); var TypGalaxie = ctx.HimmelskoerperTypenTab.Single(r => r.ID == (int)global::Kepler.Bo.HimmelskoerperTypen.Galaxie); var TypStern = ctx.HimmelskoerperTypenTab.Single(r => r.ID == (int)global::Kepler.Bo.HimmelskoerperTypen.Stern); var TypPlanet = ctx.HimmelskoerperTypenTab.Single(r => r.ID == (int)global::Kepler.Bo.HimmelskoerperTypen.Planet); var TypMond = ctx.HimmelskoerperTypenTab.Single(r => r.ID == (int)global::Kepler.Bo.HimmelskoerperTypen.Mond); var TypAsteroid = ctx.HimmelskoerperTypenTab.Single(r => r.ID == (int)global::Kepler.Bo.HimmelskoerperTypen.Asteroid); var TypKomet = ctx.HimmelskoerperTypenTab.Single(r => r.ID == (int)global::Kepler.Bo.HimmelskoerperTypen.Komet); var TypRaumschiff = ctx.HimmelskoerperTypenTab.Single(r => r.ID == (int)global::Kepler.Bo.HimmelskoerperTypen.Raumschiff); // Wir erschaffen die Welt: // Zentrum des Universums ist der Urknall, von dem alles wegfliegt var Urknall = CreateSternPlanetMond( Context: ctx, TypHK: TypUrknall, Name: "Urknall", MasseKg: -1, DAequator_km: 0, DPol_km: 0, Fallbeschleunigung: -1, TOberflaeche_K: -1, DauerUmdrehung_h: 0, RotAchsneigung: 0); ctx.SaveChanges(); // als nächstes ein paar Galaxieen global::Kepler.IGalaxie Milchstrasse = Galaxieen.CreateBoAndAddToCollection(); Milchstrasse.Name = "Milchstrasse"; Milchstrasse.Masse_in_millionen_Sonnenmassen = 1.4e12; Milchstrasse.Polardurchmesser_in_km = mko.Newton.Length.Kilometer(mko.Newton.Length.Lightyear(16000)).Vector.Length; Milchstrasse.Aequatordurchmesser_in_km = mko.Newton.Length.Kilometer(mko.Newton.Length.Lightyear(100000)).Vector.Length; // Sonne anlegen, indem ein neues Objekt dem Sterne- Container hinzugefügt wird global::Kepler.IStern Sonne = Sterne.CreateBoAndAddToCollection(); Sonne.Name = "Sonne"; Sonne.Masse_in_kg = mko.Newton.Mass.MassOfSun.Value; Sonne.Aequatordurchmesser_in_km = mko.Newton.Length.DiameterSun.Vector.Length; Sonne.Polardurchmesser_in_km = mko.Newton.Length.DiameterSun.Vector.Length; Sonne.Fallbeschleunigung_in_meter_pro_sec = mko.Newton.Acceleration.GravityOnSun.Vector.Length; Sonne.Oberflaechentemperatur_in_K = 6000; Sonne.Rotationsperiode_in_Stunden = mko.Newton.Time.SideralRotationPeriodSun.Value; Sonne.Rotationsachsenneigung_in_Grad = mko.Newton.Angle.AxialTiltOfSun.Vector.Length; Sonne.Umlaufbahn.Zentralobjekt = Milchstrasse; Sonne.Umlaufbahn.Laenge_grosse_Halbachse_in_km = mko.Newton.Length.Kilometer(mko.Newton.Length.Lightyear(28000)).Vector.Length; Sonne.Spektralklasse = Spektralklassen.GetSpektralklasse(global::Kepler.SpektralklasseID.G); // Beteigeuze global::Kepler.IStern Beteigeuze = Sterne.CreateBoAndAddToCollection(); Beteigeuze.Name = "Beteigeuze"; Beteigeuze.Aequatordurchmesser_in_km = 662 * mko.Newton.Length.Kilometer(mko.Newton.Length.DiameterSun).Vector.Length; Beteigeuze.Masse_in_kg = 20.0 * mko.Newton.Mass.Kilogram(mko.Newton.Mass.MassOfSun).Value; Beteigeuze.Oberflaechentemperatur_in_K = 3450; Beteigeuze.Umlaufbahn.Zentralobjekt = Milchstrasse; Beteigeuze.Umlaufbahn.Laenge_grosse_Halbachse_in_km = mko.Newton.Length.Kilometer(mko.Newton.Length.Lightyear(28000)).Vector.Length; Beteigeuze.Spektralklasse = Spektralklassen.GetSpektralklasse(global::Kepler.SpektralklasseID.M); ctx.SaveChanges(); // Merkur global::Kepler.IPlanet Merkur = Planeten.CreateBoAndAddToCollection(); Merkur.Name = "Merkur"; Merkur.Masse_in_kg = mko.Newton.Mass.MassOfMercury.Value; Merkur.Aequatordurchmesser_in_km= mko.Newton.Length.DiameterMercury.Vector.Length; Merkur.Polardurchmesser_in_km = mko.Newton.Length.DiameterMercury.Vector.Length; Merkur.Fallbeschleunigung_in_meter_pro_sec = mko.Newton.Acceleration.GravityOnMercury.Vector.Length; Merkur.Oberflaechentemperatur_in_K = 0; Merkur.Rotationsperiode_in_Stunden = mko.Newton.Time.SideralRotationPeriodMercury.Value; Merkur.Rotationsachsenneigung_in_Grad = mko.Newton.Angle.AxialTiltOfMercury.Vector.Length; Merkur.Umlaufbahn.Zentralobjekt = Sonne; Merkur.Umlaufbahn.Laenge_grosse_Halbachse_in_km = mko.Newton.Length.Kilometer(mko.Newton.Length.SemiMajorAxisMercury).Vector.Length; Merkur.Umlaufbahn.Exzentritzitaet= 0.205630; Merkur.Umlaufbahn.Mittlere_Umlaufgeschwindigkeit_in_km_pro_sec = mko.Newton.Velocity.VelocityOfMercury.Vector.Length; Merkur.Umlaufbahn.Umlaufdauer_in_Tagen = mko.Newton.Time.OrbitalPeriodMercury.Value; ctx.SaveChanges(); // Venus global::Kepler.IPlanet Venus = Planeten.CreateBoAndAddToCollection(); Venus.Name = "Venus"; Venus.Masse_in_kg = mko.Newton.Mass.MassOfVenus.Value; Venus.Aequatordurchmesser_in_km = mko.Newton.Length.DiameterVenus.Vector.Length; Venus.Polardurchmesser_in_km = mko.Newton.Length.DiameterVenus.Vector.Length; Venus.Fallbeschleunigung_in_meter_pro_sec = mko.Newton.Acceleration.GravityOnVenus.Vector.Length; Venus.Oberflaechentemperatur_in_K = 470; Venus.Rotationsperiode_in_Stunden = mko.Newton.Time.SideralRotationPeriodVenus.Value; Venus.Rotationsachsenneigung_in_Grad = mko.Newton.Angle.AxialTiltOfVenus.Vector.Length; Venus.Umlaufbahn.Zentralobjekt= Sonne; Venus.Umlaufbahn.Laenge_grosse_Halbachse_in_km = mko.Newton.Length.Kilometer(mko.Newton.Length.SemiMajorAxisVenus).Vector.Length; Venus.Umlaufbahn.Exzentritzitaet = 0.006756; Venus.Umlaufbahn.Mittlere_Umlaufgeschwindigkeit_in_km_pro_sec = mko.Newton.Velocity.VelocityOfVenus.Vector.Length; Venus.Umlaufbahn.Umlaufdauer_in_Tagen = mko.Newton.Time.OrbitalPeriodVenus.Value; ctx.SaveChanges(); // Erde global::Kepler.IPlanet Erde = Planeten.CreateBoAndAddToCollection(); Erde.Name = "Erde"; Erde.Masse_in_kg = mko.Newton.Mass.MassOfEarth.Value; Erde.Aequatordurchmesser_in_km = mko.Newton.Length.DiameterEarth.Vector.Length; Erde.Polardurchmesser_in_km = mko.Newton.Length.DiameterEarthPolar.Vector.Length; Erde.Fallbeschleunigung_in_meter_pro_sec = mko.Newton.Acceleration.GravityOnEarth.Vector.Length; Erde.Oberflaechentemperatur_in_K = 15; Erde.Rotationsperiode_in_Stunden= mko.Newton.Time.SideralRotationPeriodEarth.Value; Erde.Rotationsachsenneigung_in_Grad = mko.Newton.Angle.AxialTiltOfEarth.Vector.Length; Erde.Umlaufbahn.Zentralobjekt = Sonne; Erde.Umlaufbahn.Laenge_grosse_Halbachse_in_km =mko.Newton.Length.Kilometer(mko.Newton.Length.SemiMajorAxisEarth).Vector.Length; Erde.Umlaufbahn.Exzentritzitaet = 0.01671123; Erde.Umlaufbahn.Mittlere_Umlaufgeschwindigkeit_in_km_pro_sec = mko.Newton.Velocity.VelocityOfEarth.Vector.Length; Erde.Umlaufbahn.Umlaufdauer_in_Tagen = mko.Newton.Time.OrbitalPeriodEarth.Value; ctx.SaveChanges(); // Erdmond global::Kepler.IMond Mond = Monde.CreateBoAndAddToCollection(); Mond.Name = "Mond"; Mond.Masse_in_kg = mko.Newton.Mass.MassOfEarthMoon.Value; Mond.Aequatordurchmesser_in_km = mko.Newton.Length.DiameterEarthMoon.Vector.Length; Mond.Polardurchmesser_in_km = mko.Newton.Length.DiameterEarthMoon.Vector.Length; Mond.Fallbeschleunigung_in_meter_pro_sec = mko.Newton.Acceleration.GravityOnEarthMoon.Vector.Length; Mond.Oberflaechentemperatur_in_K = 0; Mond.Rotationsperiode_in_Stunden= mko.Newton.Time.SideralRotationPeriodEarthMoon.Value; Mond.Rotationsachsenneigung_in_Grad = mko.Newton.Angle.AxialTiltOfEarthMoon.Vector.Length; Mond.Umlaufbahn.Zentralobjekt = Erde; Mond.Umlaufbahn.Laenge_grosse_Halbachse_in_km= mko.Newton.Length.Kilometer(mko.Newton.Length.SemiMajorAxisEarthMoon).Vector.Length; Mond.Umlaufbahn.Exzentritzitaet = 0.0549; Mond.Umlaufbahn.Mittlere_Umlaufgeschwindigkeit_in_km_pro_sec = mko.Newton.Velocity.VelocityOfEarthMoon.Vector.Length; Mond.Umlaufbahn.Umlaufdauer_in_Tagen = mko.Newton.Time.OrbitalPeriodEarthMoon.Value; ctx.SaveChanges(); // Mars var Mars = CreateSternPlanetMond( Context: ctx, TypHK: TypPlanet, Name: "Mars", MasseKg: mko.Newton.Mass.MassOfMars.Value, DAequator_km: mko.Newton.Length.DiameterMars.Vector.Length, DPol_km: mko.Newton.Length.DiameterMarsPolar.Vector.Length, Fallbeschleunigung: mko.Newton.Acceleration.GravityOnMars.Vector.Length, TOberflaeche_K: -12.5, DauerUmdrehung_h: mko.Newton.Time.SideralRotationPeriodMars.Value, RotAchsneigung: mko.Newton.Angle.AxialTiltOfMars.Vector.Length); Mars.Umlaufbahn = CreateUmlaufbahn( Context: ctx, UmlaufbahnZentralobjekt: (Himmelskoerper) Sonne, UmlaufbahnGrosseHalbachse_km: mko.Newton.Length.Kilometer(mko.Newton.Length.SemiMajorAxisMars).Vector.Length, UmlaufbahnExzentrizität: 0.093315, Umlaufgeschwindigkeit_km_per_sec: mko.Newton.Velocity.VelocityOfMars.Vector.Length, Umlaufdauer_Tage: mko.Newton.Time.OrbitalPeriodMars.Value); var MarsPhobos = CreateSternPlanetMond( Context: ctx, TypHK: TypMond, Name: "Phobos", MasseKg: mko.Newton.Mass.MassOfMarsMoonPhobos.Value, DAequator_km: mko.Newton.Length.DiameterMarsMoonPhobos.Vector.Length, DPol_km: mko.Newton.Length.DiameterMarsMoonPhobos.Vector.Length, Fallbeschleunigung: mko.Newton.Acceleration.GravityOnMarsMoonPhobos.Vector.Length, TOberflaeche_K: 0, DauerUmdrehung_h: mko.Newton.Time.SideralRotationPeriodMarsMoonPhobos.Value, RotAchsneigung: mko.Newton.Angle.AxialTiltOfMarsMoonPhobos.Vector.Length); MarsPhobos.Umlaufbahn = CreateUmlaufbahn( Context: ctx, UmlaufbahnZentralobjekt: Mars, UmlaufbahnGrosseHalbachse_km: mko.Newton.Length.Kilometer(mko.Newton.Length.SemiMajorAxisMoonPhobos).Vector.Length, UmlaufbahnExzentrizität: 0.0002, Umlaufgeschwindigkeit_km_per_sec: mko.Newton.Velocity.VelocityOfMarsMoonPhobos.Vector.Length, Umlaufdauer_Tage: mko.Newton.Time.OrbitalPeriodMarsMoonPhobos.Value); var MarsDeimos = CreateSternPlanetMond( Context: ctx, TypHK: TypMond, Name: "Deimos", MasseKg: mko.Newton.Mass.MassOfMarsMoonDeimos.Value, DAequator_km: mko.Newton.Length.DiameterMarsMoonDeimos.Vector.Length, DPol_km: mko.Newton.Length.DiameterMarsMoonDeimos.Vector.Length, Fallbeschleunigung: mko.Newton.Acceleration.GravityOnMarsMoonDeimos.Vector.Length, TOberflaeche_K: 0, DauerUmdrehung_h: mko.Newton.Time.SideralRotationPeriodMarsMoonDeimos.Value, RotAchsneigung: mko.Newton.Angle.AxialTiltOfMarsMoonDeimos.Vector.Length); MarsDeimos.Umlaufbahn = CreateUmlaufbahn( Context: ctx, UmlaufbahnZentralobjekt: Mars, UmlaufbahnGrosseHalbachse_km: mko.Newton.Length.Kilometer(mko.Newton.Length.SemiMajorAxisMoonDeimos).Vector.Length, UmlaufbahnExzentrizität: 0.0002, Umlaufgeschwindigkeit_km_per_sec: mko.Newton.Velocity.VelocityOfMarsMoonDeimos.Vector.Length, Umlaufdauer_Tage: mko.Newton.Time.OrbitalPeriodMarsMoonDeimos.Value); // Jupiter var Jupiter = CreateSternPlanetMond( Context: ctx, TypHK: TypPlanet, Name: "Jupiter", MasseKg: mko.Newton.Mass.MassOfJupiter.Value, DAequator_km: mko.Newton.Length.DiameterJupiter.Vector.Length, DPol_km: mko.Newton.Length.DiameterJupiter.Vector.Length, Fallbeschleunigung: mko.Newton.Acceleration.GravityOnJupiter.Vector.Length, TOberflaeche_K: -100, DauerUmdrehung_h: mko.Newton.Time.SideralRotationPeriodJupiter.Value, RotAchsneigung: mko.Newton.Angle.AxialTiltOfJupiter.Vector.Length); Jupiter.Umlaufbahn = CreateUmlaufbahn( Context: ctx, UmlaufbahnZentralobjekt: (Himmelskoerper) Sonne, UmlaufbahnGrosseHalbachse_km: mko.Newton.Length.Kilometer(mko.Newton.Length.SemiMajorAxisJupiter).Vector.Length, UmlaufbahnExzentrizität: 0.048775, Umlaufgeschwindigkeit_km_per_sec: mko.Newton.Velocity.VelocityOfJupiter.Vector.Length, Umlaufdauer_Tage: mko.Newton.Time.OrbitalPeriodJupiter.Value); // Jupiter var Ganymede = CreateSternPlanetMond( Context: ctx, TypHK: TypMond, Name: "Ganymede", MasseKg: mko.Newton.Mass.MassOfJupiterMoonGanymede.Value, DAequator_km: mko.Newton.Length.DiameterJupiterMoonGanymede.Vector.Length, DPol_km: mko.Newton.Length.DiameterJupiterMoonGanymede.Vector.Length, Fallbeschleunigung: mko.Newton.Acceleration.GravityOnJupiterMoonGanymede.Vector.Length, TOberflaeche_K: 0, DauerUmdrehung_h: mko.Newton.Time.SideralRotationPeriodJupiterMoonGanymede.Value, RotAchsneigung: mko.Newton.Angle.AxialTiltOfJupiterMoonGanymede.Vector.Length); Ganymede.Umlaufbahn = CreateUmlaufbahn( Context: ctx, UmlaufbahnZentralobjekt: Jupiter, UmlaufbahnGrosseHalbachse_km: mko.Newton.Length.Kilometer(mko.Newton.Length.SemiMajorAxisJupiterMoonGanymede).Vector.Length, UmlaufbahnExzentrizität: 0.0013, Umlaufgeschwindigkeit_km_per_sec: mko.Newton.Velocity.VelocityOfJupiterMoonGanymede.Vector.Length, Umlaufdauer_Tage: mko.Newton.Time.OrbitalPeriodJupiterMoonGanymede.Value); var Callisto = CreateSternPlanetMond( Context: ctx, TypHK: TypMond, Name: "Callisto", MasseKg: mko.Newton.Mass.MassOfJupiterMoonCallisto.Value, DAequator_km: mko.Newton.Length.DiameterJupiterMoonCallisto.Vector.Length, DPol_km: mko.Newton.Length.DiameterJupiterMoonCallisto.Vector.Length, Fallbeschleunigung: mko.Newton.Acceleration.GravityOnJupiterMoonCallisto.Vector.Length, TOberflaeche_K: 0, DauerUmdrehung_h: mko.Newton.Time.SideralRotationPeriodJupiterMoonCallisto.Value, RotAchsneigung: mko.Newton.Angle.AxialTiltOfJupiterMoonCallisto.Vector.Length); Callisto.Umlaufbahn = CreateUmlaufbahn( Context: ctx, UmlaufbahnZentralobjekt: Jupiter, UmlaufbahnGrosseHalbachse_km: mko.Newton.Length.Kilometer(mko.Newton.Length.SemiMajorAxisJupiterMoonCallisto).Vector.Length, UmlaufbahnExzentrizität: 0.007, Umlaufgeschwindigkeit_km_per_sec: mko.Newton.Velocity.VelocityOfJupiterMoonCallisto.Vector.Length, Umlaufdauer_Tage: mko.Newton.Time.OrbitalPeriodJupiterMoonCallisto.Value); var Io = CreateSternPlanetMond( Context: ctx, TypHK: TypMond, Name: "Io", MasseKg: mko.Newton.Mass.MassOfJupiterMoonIo.Value, DAequator_km: mko.Newton.Length.DiameterJupiterMoonIo.Vector.Length, DPol_km: mko.Newton.Length.DiameterJupiterMoonIo.Vector.Length, Fallbeschleunigung: mko.Newton.Acceleration.GravityOnJupiterMoonIo.Vector.Length, TOberflaeche_K: 0, DauerUmdrehung_h: mko.Newton.Time.SideralRotationPeriodJupiterMoonIo.Value, RotAchsneigung: mko.Newton.Angle.AxialTiltOfJupiterMoonIo.Vector.Length); Io.Umlaufbahn = CreateUmlaufbahn( Context: ctx, UmlaufbahnZentralobjekt: Jupiter, UmlaufbahnGrosseHalbachse_km: mko.Newton.Length.Kilometer(mko.Newton.Length.SemiMajorAxisJupiterMoonIo).Vector.Length, UmlaufbahnExzentrizität: 0.0041, Umlaufgeschwindigkeit_km_per_sec: mko.Newton.Velocity.VelocityOfJupiterMoonIo.Vector.Length, Umlaufdauer_Tage: mko.Newton.Time.OrbitalPeriodJupiterMoonIo.Value); var Europa = CreateSternPlanetMond( Context: ctx, TypHK: TypMond, Name: "Europa", MasseKg: mko.Newton.Mass.MassOfJupiterMoonEuropa.Value, DAequator_km: mko.Newton.Length.DiameterJupiterMoonEuropa.Vector.Length, DPol_km: mko.Newton.Length.DiameterJupiterMoonEuropa.Vector.Length, Fallbeschleunigung: mko.Newton.Acceleration.GravityOnJupiterMoonEuropa.Vector.Length, TOberflaeche_K: 0, DauerUmdrehung_h: mko.Newton.Time.SideralRotationPeriodJupiterMoonEuropa.Value, RotAchsneigung: mko.Newton.Angle.AxialTiltOfJupiterMoonEuropa.Vector.Length); Europa.Umlaufbahn = CreateUmlaufbahn( Context: ctx, UmlaufbahnZentralobjekt: Jupiter, UmlaufbahnGrosseHalbachse_km: mko.Newton.Length.Kilometer(mko.Newton.Length.SemiMajorAxisJupiterMoonEuropa).Vector.Length, UmlaufbahnExzentrizität: 0.009, Umlaufgeschwindigkeit_km_per_sec: mko.Newton.Velocity.VelocityOfJupiterMoonEuropa.Vector.Length, Umlaufdauer_Tage: mko.Newton.Time.OrbitalPeriodJupiterMoonEuropa.Value); // Saturn var Saturn = CreateSternPlanetMond( Context: ctx, TypHK: TypPlanet, Name: "Saturn", MasseKg: mko.Newton.Mass.MassOfSaturn.Value, DAequator_km: mko.Newton.Length.DiameterSaturn.Vector.Length, DPol_km: mko.Newton.Length.DiameterSaturnPolar.Vector.Length, Fallbeschleunigung: mko.Newton.Acceleration.GravityOnSaturn.Vector.Length, TOberflaeche_K: -100, DauerUmdrehung_h: mko.Newton.Time.SideralRotationPeriodSaturn.Value, RotAchsneigung: mko.Newton.Angle.AxialTiltOfSaturn.Vector.Length); Saturn.Umlaufbahn = CreateUmlaufbahn( Context: ctx, UmlaufbahnZentralobjekt: (Himmelskoerper)Sonne, UmlaufbahnGrosseHalbachse_km: mko.Newton.Length.Kilometer(mko.Newton.Length.SemiMajorAxisSaturn).Vector.Length, UmlaufbahnExzentrizität: 0.055723219, Umlaufgeschwindigkeit_km_per_sec: mko.Newton.Velocity.VelocityOfSaturn.Vector.Length, Umlaufdauer_Tage: mko.Newton.Time.OrbitalPeriodSaturn.Value); // Titan var Titan = CreateSternPlanetMond( Context: ctx, TypHK: TypMond, Name: "Titan", MasseKg: mko.Newton.Mass.MassOfSaturnMoonTitan.Value, DAequator_km: mko.Newton.Length.DiameterSaturnMoonTitan.Vector.Length, DPol_km: mko.Newton.Length.DiameterSaturnMoonTitan.Vector.Length, Fallbeschleunigung: mko.Newton.Acceleration.GravityOnSaturnMoonTitan.Vector.Length, TOberflaeche_K: -179, DauerUmdrehung_h: mko.Newton.Time.Days(15.945).Value, RotAchsneigung: mko.Newton.Angle.Degree(0.33).Vector[0]); Titan.Umlaufbahn = CreateUmlaufbahn( Context: ctx, UmlaufbahnZentralobjekt: Saturn, UmlaufbahnGrosseHalbachse_km: mko.Newton.Length.Kilometer(mko.Newton.Length.SemiMajorAxisSaturnMoonTitan).Vector.Length, UmlaufbahnExzentrizität: 0.009, Umlaufgeschwindigkeit_km_per_sec: mko.Newton.Velocity.VelocityOfSaturnMoonTitan.Vector.Length, Umlaufdauer_Tage: mko.Newton.Time.Days(15.945).Value); // Enceladus var Enceladus = CreateSternPlanetMond( Context: ctx, TypHK: TypMond, Name: "Enceladus", MasseKg: mko.Newton.Mass.MassOfSaturnMoonEnceladus.Value, DAequator_km: mko.Newton.Length.DiameterSaturnMoonEnceladus.Vector.Length, DPol_km: mko.Newton.Length.DiameterSaturnMoonEnceladus.Vector.Length, Fallbeschleunigung: mko.Newton.Acceleration.GravityOnSaturnMoonEnceladus.Vector.Length, TOberflaeche_K: -240, DauerUmdrehung_h: mko.Newton.Time.Days(1.370217824).Value, RotAchsneigung: mko.Newton.Angle.Degree(0.019).Vector[0]); Enceladus.Umlaufbahn = CreateUmlaufbahn( Context: ctx, UmlaufbahnZentralobjekt: Saturn, UmlaufbahnGrosseHalbachse_km: mko.Newton.Length.Kilometer(mko.Newton.Length.SemiMajorAxisSaturnMoonEnceladus).Vector.Length, UmlaufbahnExzentrizität: 0.0047, Umlaufgeschwindigkeit_km_per_sec: mko.Newton.Velocity.VelocityOfSaturnMoonEnceladus.Vector.Length, Umlaufdauer_Tage: mko.Newton.Time.Days(1.370217824).Value); // Reha Mond Saturn 527040 km 1532 2,317E+21 global::Kepler.IMond Reha = Monde.CreateBoAndAddToCollection(); Reha.Name = "Reha"; Reha.Masse_in_kg = 2.317E+21; Reha.Aequatordurchmesser_in_km = 1532; Reha.Umlaufbahn.Zentralobjekt = Saturn; Reha.Umlaufbahn.Laenge_grosse_Halbachse_in_km = 527040; // Dione Mond Saturn 377420 km 1127,6 1,096E+21 global::Kepler.IMond Dione = Monde.CreateBoAndAddToCollection(); Dione.Name = "Dione"; Dione.Masse_in_kg = 1.096E+21; Dione.Aequatordurchmesser_in_km = 1127.6; Dione.Umlaufbahn.Zentralobjekt = Saturn; Dione.Umlaufbahn.Laenge_grosse_Halbachse_in_km = 377420; // Iapetus Mond Saturn 3561300 km 1436 1,600E+21 global::Kepler.IMond Iapetus = Monde.CreateBoAndAddToCollection(); Iapetus.Name = "Iapetus"; Iapetus.Masse_in_kg = 1.600E+21; Iapetus.Aequatordurchmesser_in_km = 1436; Iapetus.Umlaufbahn.Zentralobjekt = Saturn; Iapetus.Umlaufbahn.Laenge_grosse_Halbachse_in_km = 3561300; // Tethys Mond Saturn 294619 km 1062 6,174E+20 global::Kepler.IMond Tethys = Monde.CreateBoAndAddToCollection(); Tethys.Name = "Tethys"; Tethys.Masse_in_kg = 6.174E+20; Tethys.Aequatordurchmesser_in_km = 1062; Tethys.Umlaufbahn.Zentralobjekt = Saturn; Tethys.Umlaufbahn.Laenge_grosse_Halbachse_in_km = 294619; // Uranus var Uranus = CreateSternPlanetMond( Context: ctx, TypHK: TypPlanet, Name: "Uranus", MasseKg: mko.Newton.Mass.MassOfUranus.Value, DAequator_km: mko.Newton.Length.DiameterUranus.Vector.Length, DPol_km: mko.Newton.Length.DiameterUranusPolar.Vector.Length, Fallbeschleunigung: mko.Newton.Acceleration.GravityOnUranus.Vector.Length, TOberflaeche_K: -100, DauerUmdrehung_h: mko.Newton.Time.SideralRotationPeriodUranus.Value, RotAchsneigung: mko.Newton.Angle.AxialTiltOfUranus.Vector.Length); Uranus.Umlaufbahn = CreateUmlaufbahn( Context: ctx, UmlaufbahnZentralobjekt: (Himmelskoerper)Sonne, UmlaufbahnGrosseHalbachse_km: mko.Newton.Length.Kilometer(mko.Newton.Length.SemiMajorAxisUranus).Vector.Length, UmlaufbahnExzentrizität: 0.044405586, Umlaufgeschwindigkeit_km_per_sec: mko.Newton.Velocity.VelocityOfUranus.Vector.Length, Umlaufdauer_Tage: mko.Newton.Time.OrbitalPeriodUranus.Value); // Ariel Mond Uranus 190900 km 1157,8 1,353E+21 global::Kepler.IMond Ariel = Monde.CreateBoAndAddToCollection(); Ariel.Name = "Ariel"; Ariel.Masse_in_kg = 1.353E+21; Ariel.Aequatordurchmesser_in_km = 1157.8; Ariel.Umlaufbahn.Zentralobjekt = Uranus; Ariel.Umlaufbahn.Laenge_grosse_Halbachse_in_km = 190900; // Umbriel Mond Uranus 266300 km 1169 1,172E+21 global::Kepler.IMond Umbriel = Monde.CreateBoAndAddToCollection(); Umbriel.Name = "Umbriel"; Umbriel.Masse_in_kg = 1.172E+21; Umbriel.Aequatordurchmesser_in_km = 1169; Umbriel.Umlaufbahn.Zentralobjekt = Uranus; Umbriel.Umlaufbahn.Laenge_grosse_Halbachse_in_km = 266300; // Titania Mond Uranus 436300 km 1577,8 3,527E+21 global::Kepler.IMond Titania = Monde.CreateBoAndAddToCollection(); Titania.Name = "Titania"; Titania.Masse_in_kg = 3.527E+21; Titania.Aequatordurchmesser_in_km = 1577.8; Titania.Umlaufbahn.Zentralobjekt = Uranus; Titania.Umlaufbahn.Laenge_grosse_Halbachse_in_km = 436300; // Oberon Mond Uranus 583519 km 1522,8 3,014E+21 global::Kepler.IMond Oberon = Monde.CreateBoAndAddToCollection(); Oberon.Name = "Oberon"; Oberon.Masse_in_kg = 3.014E+21; Oberon.Aequatordurchmesser_in_km = 1522.8; Oberon.Umlaufbahn.Zentralobjekt = Uranus; Oberon.Umlaufbahn.Laenge_grosse_Halbachse_in_km = 583519; // Miranda Mond Uranus 129872 km 471,6 6,590E+19 global::Kepler.IMond Miranda = Monde.CreateBoAndAddToCollection(); Miranda.Name = "Miranda"; Miranda.Masse_in_kg = 6.590E+19; Miranda.Aequatordurchmesser_in_km = 471.6; Miranda.Umlaufbahn.Zentralobjekt = Uranus; Miranda.Umlaufbahn.Laenge_grosse_Halbachse_in_km = 129872; // Neptun var Neptun = CreateSternPlanetMond( Context: ctx, TypHK: TypPlanet, Name: "Neptun", MasseKg: mko.Newton.Mass.MassOfNeptune.Value, DAequator_km: mko.Newton.Length.DiameterNeptune.Vector.Length, DPol_km: mko.Newton.Length.DiameterNeptunePolar.Vector.Length, Fallbeschleunigung: mko.Newton.Acceleration.GravityOnNeptune.Vector.Length, TOberflaeche_K: -100, DauerUmdrehung_h: mko.Newton.Time.SideralRotationPeriodNeptune.Value, RotAchsneigung: mko.Newton.Angle.AxialTiltOfNeptune.Vector.Length); Neptun.Umlaufbahn = CreateUmlaufbahn( Context: ctx, UmlaufbahnZentralobjekt: (Himmelskoerper) Sonne, UmlaufbahnGrosseHalbachse_km: mko.Newton.Length.Kilometer(mko.Newton.Length.SemiMajorAxisNeptune).Vector.Length, UmlaufbahnExzentrizität: 0.011214269, Umlaufgeschwindigkeit_km_per_sec: mko.Newton.Velocity.VelocityOfNeptune.Vector.Length, Umlaufdauer_Tage: mko.Newton.Time.OrbitalPeriodNeptune.Value); // Triton Mond Neptun 354759 km 2706 2,147E+22 global::Kepler.IMond Triton = Monde.CreateBoAndAddToCollection(); Triton.Name = "Triton"; Triton.Masse_in_kg = 2.147E+22; Triton.Aequatordurchmesser_in_km = 2706; Triton.Umlaufbahn.Zentralobjekt = Neptun; Triton.Umlaufbahn.Laenge_grosse_Halbachse_in_km = 354759; // Nereid Mond Neptun 5513787 km 340 3,100E+19 global::Kepler.IMond Nereid = Monde.CreateBoAndAddToCollection(); Nereid.Name = "Nereid"; Nereid.Masse_in_kg = 3.100E+19; Nereid.Aequatordurchmesser_in_km = 340; Nereid.Umlaufbahn.Zentralobjekt = Neptun; Nereid.Umlaufbahn.Laenge_grosse_Halbachse_in_km = 5513787; ctx.SaveChanges(); // Länder var SU = ctx.LaenderTab.Where(r => r.Laenderkennzeichen == "SU").Single(); var USA = ctx.LaenderTab.Where(r => r.Laenderkennzeichen == "USA").Single(); var RU = ctx.LaenderTab.Where(r => r.Laenderkennzeichen == "RU").Single(); var CN = ctx.LaenderTab.Where(r => r.Laenderkennzeichen == "CN").Single(); var KP = ctx.LaenderTab.Where(r => r.Laenderkennzeichen == "KP").Single(); var IR = ctx.LaenderTab.Where(r => r.Laenderkennzeichen == "IR").Single(); // Aufgaben var Wissenschaft = ctx.AufgabenTab.Where(r => r.Aufgabenbeschreibung == "Wissenschaft").Single(); var Militär = ctx.AufgabenTab.Where(r => r.Aufgabenbeschreibung == "Militär").Single(); var Telekommunikation = ctx.AufgabenTab.Where(r => r.Aufgabenbeschreibung == "Telekommunikation").Single(); var Prestige = ctx.AufgabenTab.Where(r => r.Aufgabenbeschreibung == "Prestige").Single(); // Raumschiffe anlegen CreateRaumschiff(Context: ctx, Name: "Wostok 1", MasseKg: 4730, Land: SU, Start_Mission: new DateTime(1961, 4, 12), Aufgaben: new Aufgabe[] { Wissenschaft, Prestige }); CreateRaumschiff(Context: ctx, Name: "Apollo 11", MasseKg: 5560 + 23243 + 15095, Land: USA, Aufgaben: new Aufgabe[] { Wissenschaft, Prestige }, Start_Mission: new DateTime(1969, 7, 16)); CreateRaumschiff(Context: ctx, Name: "Shenzhou 5", MasseKg: 7790, Land: CN, Aufgaben: Wissenschaft, Start_Mission: new DateTime(2003, 10, 15)); CreateRaumschiff(Context: ctx, Name: "Kwangmyŏngsŏng", MasseKg: 100, Land: KP, Aufgaben: new Aufgabe[] { Wissenschaft, Militär }, Start_Mission: new DateTime(2012, 12, 12)); CreateRaumschiff(Context: ctx, Name: "Omid", MasseKg: 23, Land: IR, Aufgaben: new Aufgabe[] { Telekommunikation, Militär }, Start_Mission: new DateTime(2009, 2, 2)); ctx.SaveChanges(); } } catch (Exception ex) { string msg = mko.TraceHlp.FormatErrMsg("KeplerDBInstaller", "CreateDB", ex.Message); throw new Exception(msg, ex); } }