2
$\begingroup$

I am interested in retrieving the entire table (preferably in text or csv format) that is behind the ElementData function for ALL the elements. The table (or perhaps multiple tables) record(s) many properties (about 75) for each element. So basically I would have a table with about 118 elements that would like something like this:

Element | Atomic Number | Atomic Weight |Property 1 | Property 2 | … |Property n

N | 7 | 14.0067 | Value 1 | Value 2 | … | Value n

… … … … … … …

I know some properties for some elements may not have been measured or relevant but this is okay. Any help would be greatly appreciated. If you know of an outside source that has a comprehensive table, please let me know. THANK YOU!

$\endgroup$
  • $\begingroup$ One thing worth noting is that if you need this for access from another program you can also write a script so that you regenerate this data. i.e make a Mathematica script with Edmund's EntityValue call and plus an Export[<command-line-arg>,data,"TSV"]. It'll be worth caching such a file, but it's good to have the option to regenerate it. Moreover if you need it for a specific element or set of them this gives a convenient pull method that doesn't involve the front-end. $\endgroup$ – b3m2a1 May 16 '17 at 2:06
  • $\begingroup$ Thank you. I will need to export so I'll be doing this! $\endgroup$ – kambino May 16 '17 at 17:49
2
$\begingroup$

You may use the Knowledge Representation & Access functions.

As mentioned it may take a while and not all properties lend themselves well to a text representation in a CSV file.

For example, taking a look at "Carbon" shows the issues you will have attempting to save it into CSV. Have a look at the "allotropes" and the "common compound names" properties. The later is a list of 100 items.

EntityValue[Entity["Element", "Carbon"], EntityProperties["Element"], "Dataset"]

Mathematica graphics

However, you can pull them all down into a Dataset and then pick how you intend to save from the extensive list of Importing and Exporting files types that are available.

ds = EntityValue[EntityClass["Element", All], EntityProperties["Element"], "Dataset"]

Hope this helps.

$\endgroup$
  • $\begingroup$ Thank you! This does not give it to me in the format I would like but still is very helpful for future reference. $\endgroup$ – kambino May 16 '17 at 17:48
2
$\begingroup$

There are likely too many properties (85) for you to make a simple table:

ElementData["Properties"]

{"Abbreviation", "AdiabaticIndex", "AllotropeNames", "AllotropicMultiplicities", "AlternateNames", "AlternateStandardNames", "AtomicMass", "AtomicNumber", "AtomicRadius", "Block", "BoilingPoint", "BrinellHardness", "BulkModulus", "CASNumber", "Color", "CommonCompoundNames", "CovalentRadius", "CriticalPressure", "CriticalTemperature", "CrustAbundance", "CrystalStructure", "CuriePoint", "DecayMode", "Density", "DiscoveryCountries", "DiscoveryYear", "ElectricalConductivity", "ElectricalType", "ElectronAffinity", "ElectronConfiguration", "ElectronConfigurationString", "Electronegativity", "ElectronShellConfiguration", "FusionHeat", "GasAtomicMultiplicities", "Group", "HalfLife", "HumanAbundance", "IconColor", "IonizationEnergies", "IsotopeAbundances", "KnownIsotopes", "LatticeAngles", "LatticeConstants", "Lifetime", "LiquidDensity", "MagneticType", "MassMagneticSusceptibility", "MeltingPoint", "Memberships", "MeteoriteAbundance", "MohsHardness", "MolarMagneticSusceptibility", "MolarVolume", "Name", "NeelPoint", "NeutronCrossSection", "NeutronMassAbsorption", "OceanAbundance", "Period", "Phase", "PoissonRatio", "QuantumNumbers", "Radioactive", "RefractiveIndex", "Resistivity", "Series", "ShearModulus", "SolarAbundance", "SoundSpeed", "SpaceGroupName", "SpaceGroupNumber", "SpecificHeat", "StableIsotopes", "StandardName", "SuperconductingPoint", "ThermalConductivity", "ThermalExpansion", "UniverseAbundance", "Valence", "VanDerWaalsRadius", "VaporizationHeat", "VickersHardness", "VolumeMagneticSusceptibility", "YoungModulus"}

So you'll have to pick out the ones you need.

Try this:

Table[
     ElementData[n, ElementData["Properties"][[j]]], 
{n, 118}, {j, {8,55,15,49}}] // TableForm

to get the atomic number (property 8), name (55), color (15) and boiling point (49).

$\endgroup$
  • $\begingroup$ Hi David. Thank you! This works! $\endgroup$ – kambino May 16 '17 at 17:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.