Implementing own data functions
- To: mathgroup at smc.vnet.net
- Subject: [mg84120] Implementing own data functions
- From: Mac <mwjdavidson at googlemail.com>
- Date: Mon, 10 Dec 2007 20:43:44 -0500 (EST)
Mathematica 6 comes with useful data functions covering topics ranging
from financial data to chemical isotope decay chains. Having
established the syntax and functionality through these functions, it
would make sense to me if there was a mechanism for users to build up
their own data functions. It would be a useful way of sharing data
with other users.
Unfortunately I haven't come across any tutorial or description of how
data functions are implemented. As far as I can make out some of the
features of data functions are similar to associative arrays (or
hashes) as found in other languages such as Perl. Indeed, I've
starting putting together some very simple data on radar satellite
missions and launch rockets but using a simple 1 level hash-like
syntax. An example is provided below.
Does anybody have a better insight or examples of how WRI data
functions are implemented and could be made to work for individual
efforts ?
Many thanks
Mac
Here an example for the Japanese JERS-1 satellite
Clear[jers1, keys]
keys[hash_] := Map[#[[1, 1, 1]] &, DownValues[hash]];
jers1["Platform"] = {
{"Dates",
"monthdayyear", {"February 11, 1992", "October 11, 1992"}},
{"Repeatcycle", "days", 44},
{"Altitude", "km", 568},
{"OrbitInclination", "deg", 97.67},
{"Rollerr", "deg", 0.12},
{"Rollerr", "deg", 0.16},
{"Yawerr", "deg", 0.13}
};
jers1["SARPayload"] = {
{"Frequency", "Ghz", 1.275},
{"AntennaLength", "m", 11.9 },
{"AntennaWidth", "m", 2.4},
{"Bandwidth", "MHz", 15},
{"PRF", "Hz", {1505, 1602}},
{"Look direction", " ", "right"},
{"NumberModes", " ", 1}};