Wolfram Language

Un accès plus riche à la base de connaissances

Créez un EntityStore pour les météorites à boules de feu

La base de connaissances de Wolfram contient une grande quantité d'informations couvrant de nombreux domaines. Elle est également dotée d'une puissante suite de fonctionnalités permettant de représenter ces connaissances, d'y accéder et de les utiliser à des fins informatiques. Désormais, il est également possible (et même simple) pour les utilisateurs de créer leurs propres collections d'entités et de propriétés et de les utiliser comme s'il s'agissait de données intégrées. Nous illustrons ici le processus de création et d'utilisation d'un magasin d'entités pour les météorites à boules de feu (appelées bolides) à partir d'une source de données existante.

Utilisez l'option Import pour télécharger un jeu de données sur les bolides géré par le Jet Propulsion Laboratory.

In[1]:=
Click for copyable input
(rawdata = Import["http://neo.jpl.nasa.gov/fireballs/", "FullData"])[[3, 9, 2, 12, 1, ;; 5]]
Out[1]=

Définissez une fonction d'utilité pour associer des unités aux données brutes.

In[2]:=
Click for copyable input
AddUnits[x_, u_: "Kilometers"/"Seconds"] := If[NumberQ[x], Quantity[Interpreter["Number"][x], u], Missing["NotAvailable"]]

Extrayez les parties pertinentes des données, ajoutez un étiquetage Quantity quantitatif approprié et créez le magasin d'entités.

Afficher l'entrée complète en Wolfram Language
In[3]:=
Click for copyable input
bolidedata = DeleteCases[{ DateObject[#1], With[{i = Interpreter["GeoCoordinates"][#2 <> " " <> #3]}, If[Head[i] === Missing, i, GeoPosition[Join[i[[1]], If[NumberQ[#4], {#4 10^3}, {}]]]]], AddUnits[#5], AddUnits[#6], AddUnits[#7], AddUnits[#8], AddUnits[#9, "Joules"], AddUnits[#10, "MetricKilotons"] } & @@@ rawdata[[3, 9, 2, 12, 1, 2 ;;]], {_, _Missing, __}];
In[4]:=
Click for copyable input
entities = Association @@ MapIndexed[ "Bolide" <> ToString[First[#2]] -> <| "Date" -> #[[1]], "Position" -> #[[2]], "Velocity" -> #[[3]], "VelocityX" -> #[[4]], "VelocityY" -> #[[5]], "VelocityZ" -> #[[6]], "TotalRadiatedEnergy" -> #[[7]], "CalculatedTotalImpactEnergy" -> #[[8]], "Label" -> "bolide on " <> DateString[#[[1]]] <> " GMT" |> &, bolidedata];
In[5]:=
Click for copyable input
properties = <| "Date" -> <|"Label" -> "date"|>, "Position" -> <|"Label" -> "position"|>, "Velocity" -> <|"Label" -> "velocity"|>, "VelocityX" -> <|"Label" -> "velocity x\[Hyphen]component"|>, "VelocityY" -> <|"Label" -> "velocity y\[Hyphen]component"|>, "VelocityZ" -> <|"Label" -> "velocity z\[Hyphen]component"|>, "TotalRadiatedEnergy" -> <|"Label" -> "total radiated energy"|>, "CalculatedTotalImpactEnergy" -> <|"Label" -> "calculated total impact energy"|> |>;
In[6]:=
Click for copyable input
store = EntityStore["Bolide" -> <| "Label" -> "bolide", "LabelPlural" -> "bolides", "Entities" -> entities, "Properties" -> properties |>]
Out[6]=

Enregistrez le magasin pour cette session.

In[7]:=
Click for copyable input
PrependTo[$EntityStores, store];

Créez une "EntityAssociation" de positions et d'énergies de bolides.

In[8]:=
Click for copyable input
ea = EntityValue["Bolide", {"Position", "TotalRadiatedEnergy"}, "EntityAssociation"];

Réalisez un tracé géographique des visibilités des bolides en fonction de leurs hauteurs et de leurs positions dans le ciel.

In[9]:=
Click for copyable input
GeoGraphics[{GeoVisibleRegion[#] & @@@ Values[ea]}]
Out[9]=

Extrayez les énergies des bolides dans un QuantityArray.

In[10]:=
Click for copyable input
energies = QuantityArray[Values[ea][[All, -1]]]
Out[10]=

Visualisez les énergies des bolides à l'aide d'un histogramme.

In[11]:=
Click for copyable input
Histogram[energies, "Log", AxesLabel -> {"energy (J)", "count"}]
Out[11]=

Appliquez une fonction d'échelle pour obtenir une image qualitative de la luminosité des boules de feu.

Afficher l'entrée complète en Wolfram Language
In[12]:=
Click for copyable input
scale[e_] := Quantity[1.*10^4 Sqrt[e/Max[energies]], "Kilometers"]
In[13]:=
Click for copyable input
GeoGraphics[{Red, GeoDisk[#1, scale[#2]] & @@@ Values[ea]}]
Out[13]=

Exemples connexes

en es ja ko pt-br ru zh