Create a Fireball Meteor EntityStore
The Wolfram Knowledgebase contains a vast wealth of information spanning many diverse areas. It also boasts a powerful suite of functionality for representing, accessing, and computing with this knowledge. Now it is also possible (and even straightforward) for users to create their own entity-property collections and work with them as if they were built-in data. Here, the process of creating and using an entity store for fireball meteors (known as bolides) based on an existing data source is illustrated.
Use Import to download a bolide dataset maintained by the Jet Propulsion Laboratory.
(rawdata =
Import["http://neo.jpl.nasa.gov/fireballs/",
"FullData"])[[3, 9, 2, 12, 1, ;; 5]]
Define a utility function to attach units to the raw data.
AddUnits[x_, u_: "Kilometers"/"Seconds"] :=
If[NumberQ[x], Quantity[Interpreter["Number"][x], u],
Missing["NotAvailable"]]
Extract relevant parts of the data, add appropriate Quantity tagging, and create the entity store.
store = EntityStore["Bolide" -> <|
"Label" -> "bolide",
"LabelPlural" -> "bolides",
"Entities" -> entities,
"Properties" -> properties
|>]
Register the store for this session.
PrependTo[$EntityStores, store];
Create an "EntityAssociation" of bolide positions and energies.
ea = EntityValue["Bolide", {"Position", "TotalRadiatedEnergy"},
"EntityAssociation"];
Make a geographic plot of bolide visibilities based on their heights and sky positions.
GeoGraphics[{GeoVisibleRegion[#] & @@@ Values[ea]}]
Extract bolide energies into a QuantityArray.
energies = QuantityArray[Values[ea][[All, -1]]]
Visualize bolide energies using a histogram.
Histogram[energies, "Log", AxesLabel -> {"energy (J)", "count"}]
Apply a scaling function to give a qualitative picture of fireball brightnesses.
GeoGraphics[{Red, GeoDisk[#1, scale[#2]] & @@@ Values[ea]}]