Wolfram Language

Acceso enriquecido a la base de conocimiento

Cree un EntityStore de meteoros de bolas de fuego

Wolfram Knowledgebase contiene una gran cantidad de información que abarca diversas áreas. Además cuenta con un potente conjunto de funcionalidades para representar, acceder y realizar cálculos con este conocimiento. Ahora es posible (y muy fácil) para usuarios crear sus propias colecciones de datos y trabajar con ellas como si fueran datos incorporados. Aquí se ilustra el proceso de creación y uso de un almacén de entidades para meteoros de bolas de fuego (conocidos como bólidos) basados en fuentes de datos existentes.

Use Import para descargar un conjunto de datos de bólidos mantenido por el 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]=

Defina una función de utilidad para adjuntar unidades a datos crudos.

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

Extraiga las partes relevantes de los datos, agregue etiquetas apropiadas de Quantity y cree el almacén de entidades.

muestre la entrada completa de 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]=

Registre el almacén para esta sesión.

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

Cree una "EntityAssociation" de posiciones y energías de bólidos.

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

Cree un gráfico geográfico de visibilidades de bólidos basados en sus alturas y posiciones en el cielo.

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

Extraiga energías de bólidos en QuantityArray.

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

Visualice energías de bólidos usando un histograma.

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

Aplique una función de escala para dar una imagen cualitativa del brillo de la bola de fuego.

muestre la entrada completa de 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]=

Ejemplos relacionados

en fr ja ko pt-br ru zh