MoonKAM shot

The Gravity Recovery and Interior Laboratory (GRAIL) was an American lunar science mission in NASA's Discovery Program which used high-quality gravitational field mapping of the Moon to determine its interior structure. The two small spacecraft GRAIL A (Ebb) and GRAIL B (Flow)[1] were launched on 10 September 2011 aboard a single launch vehicle: the most-powerful configuration of a Delta II, the 7920H-10.[2][3][4] GRAIL A separated from the rocket about nine minutes after launch, GRAIL B followed about eight minutes later. They arrived at their orbits around the Moon 25 hours apart.[5][6] The first probe entered orbit on 31 December 2011 and the second followed on 1 January 2012.[7] The two spacecraft impacted the Lunar surface on December 17, 2012.[8]

Overview

Fourth grade students at Emily Dickinson Elementary School in Bozeman, Montana who suggested names Ebb and Flow.[1]

Maria Zuber of the Massachusetts Institute of Technology is GRAIL's principal investigator. NASA's Jet Propulsion Laboratory manages the project. As of August 5, 2011, the program has cost US$496 million.[9] Upon launch the spacecraft were named GRAIL A and GRAIL B and a contest was opened to school children to select names. Nearly 900 classrooms from 45 states, Puerto Rico and the District of Columbia, participated in the contest. The winning names, Ebb and Flow, were suggested by 4th grade students at Emily Dickinson Elementary School in Bozeman, Montana.[1]

Each spacecraft transmitted and received telemetry from the other spacecraft and Earth-based facilities. By measuring the change in distance between the two spacecraft, the gravity field and geological structure of the Moon was obtained. The two spacecraft were able to detect very small changes in the distance between one another. Changes in distance as small as one micron were detectable and measurable.[10][11] The gravitational field of the Moon was mapped in unprecedented detail.[12]

Objectives

  • Map the structure of the lunar crust and lithosphere
  • Understand the asymmetric thermal evolution of the Moon
  • Determine the subsurface structure of impact basins and the origin of lunar mascons
  • Ascertain the temporal evolution of crustal brecciation and magmatism
  • Constrain the deep interior structure of the Moon
  • Place limits on the size of the Moon's inner core

The data collection phase of the mission lasted from 7 Mar 2012 to 29 May 2012, for a total of 88 days. A second phase, at a lower altitude, of data collection began 31 Aug 2012,[13] and was followed by 12 months of data analysis.[12] On 5 Dec 2012 NASA released a gravity map of the Moon made from GRAIL data.[14] The knowledge acquired will aid understanding of the evolutionary history of the terrestrial planets and computations of lunar orbits.[15]

Spacecraft

Instruments

Gravity map of the Moon by GRAIL
  • Ka band Lunar Gravity Ranging System (LGRS), derived from the Gravity Recovery and Climate Experiment instrument.[16] 90% of the GRACE software was reused for GRAIL.[17]
  • Radio science beacon (RSB)
  • Moon Knowledge Acquired by Middle school students (MoonKAM).[18] Each MoonKAM system (one per spacecraft) consists of a digital video controller and four camera heads.[19] Click here [1] for a MoonKAM photo from lunar orbit.

Propulsion

Thrusters aboard each spacecraft were capable of producing 22 newtons (4.9 lbf).[16] Each spacecraft was fueled with 103.5 kilograms (228 lb) of hydrazine to be used by the thrusters and main engine to enable the spacecraft to enter lunar orbit and transition to the science phase of its mission. The propulsion subsystem consisted of a main fuel tank and a Re-repressurization system which were activated shortly after lunar orbit insertion.[20]

Mission profile

Launch attempts

All times are in EDT (UTC-4).

Transit phase

GRAIL-transit-Earth-Moon

Unlike the Apollo program missions, which took three days to reach the Moon, GRAIL made use of a three- to four-month low-energy trans-lunar cruise well outside the Moon's orbit and passing near the Sun-Earth Lagrange point L1 before looping back to rendezvous with the Moon. This extended and circuitous trajectory enabled the mission to reduce fuel requirements, protect instruments and reduce the velocity of the two spacecraft at lunar arrival to help achieve the extremely low 50 km (31 mi) orbits with separation between the spacecraft (arriving 25 hours apart) of 175 to 225 km (109 to 140 mi).[15][21] The very tight tolerances in the flight plan left little room for error correction leading to a launch window lasting one second and providing only two launch opportunities per day.[22]

Science phase

The primary science phase of GRAIL lasted for 88 days, from 7 Mar 2012 to 29 May 2012. It was followed by a second science phase starting on 8 Aug.

The gravity mapping technique was similar to that used by Gravity Recovery and Climate Experiment (GRACE), and the spacecraft design was based on XSS-11.[23]

The orbital insertion dates were December 31, 2011 (2011-12-31) (for GRAIL-A) and January 1, 2012 (2012-01-01) (for GRAIL-B).[24]

The spacecraft were operated over the 88 day acquisition phase, divided into three 27.3 day long nadir-pointed mapping cycles. Twice each day there was an 8-hour pass in view of the Deep Space Network for transmission of science and "E/PO MoonKam" data.[25]

Terminal phase

Final experiment and mission end

At the end of the science phase and a mission extension, the spacecraft were powered down and decommissioned over a five-day period. The spacecraft impacted the lunar surface on December 17, 2012.[25][26][27][28][29][30] Both spacecraft impacted an unnamed lunar mountain between Philolaus and Mouchez at . Ebb, the lead spacecraft in formation, impacted first. Flow impacted moments later. Each spacecraft was traveling at 3,760 miles per hour (1.68 km/s). A final experiment was conducted during the final days of the mission. Main engines aboard the spacecraft were fired, depleting remaining fuel. Data from that effort will be used by mission planners to validate fuel consumption computer models to improve predictions of fuel needs for future missions.[31] NASA has announced that the crash site will be named after GRAIL collaborator and first American woman in space, Sally Ride.[32]

Moon – Oceanus Procellarum ("Ocean of Storms")
Ancient rift valleys – rectangular structure (visible – topography – GRAIL gravity gradients) (October 1, 2014).
Ancient rift valleys – context.
Ancient rift valleys – closeup (artist's concept).

References


-- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the and meta-templates and includes -- -- helper functions for other Lua hatnote modules. --


local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local mArguments -- lazily initialise Module:Arguments local yesno -- lazily initialise Module:Yesno

local p = {}


-- Helper functions


local function getArgs(frame) -- Fetches the arguments from the parent frame. Whitespace is trimmed and -- blanks are removed. mArguments = require('Module:Arguments') return mArguments.getArgs(frame, {parentOnly = true}) end

local function removeInitialColon(s) -- Removes the initial colon from a string, if present. return s:match('^:?(.*)') end

function p.findNamespaceId(link, removeColon) -- Finds the namespace id (namespace number) of a link or a pagename. This -- function will not work if the link is enclosed in double brackets. Colons -- are trimmed from the start of the link by default. To skip colon -- trimming, set the removeColon parameter to true. checkType('findNamespaceId', 1, link, 'string') checkType('findNamespaceId', 2, removeColon, 'boolean', true) if removeColon ~= false then link = removeInitialColon(link) end local namespace = link:match('^(.-):') if namespace then local nsTable = mw.site.namespaces[namespace] if nsTable then return nsTable.id end end return 0 end

function p.formatPages(...) -- Formats a list of pages using formatLink and returns it as an array. Nil -- values are not allowed. local pages = {...} local ret = {} for i, page in ipairs(pages) do ret[i] = p._formatLink(page) end return ret end

function p.formatPageTables(...) -- Takes a list of page/display tables and returns it as a list of -- formatted links. Nil values are not allowed. local pages = {...} local links = {} for i, t in ipairs(pages) do checkType('formatPageTables', i, t, 'table') local link = t[1] local display = t[2] links[i] = p._formatLink(link, display) end return links end

function p.makeWikitextError(msg, helpLink, addTrackingCategory) -- Formats an error message to be returned to wikitext. If -- addTrackingCategory is not false after being returned from -- Module:Yesno, and if we are not on a talk page, a tracking category -- is added. checkType('makeWikitextError', 1, msg, 'string') checkType('makeWikitextError', 2, helpLink, 'string', true) yesno = require('Module:Yesno') local title = mw.title.getCurrentTitle() -- Make the help link text. local helpText if helpLink then helpText = ' (help)' else helpText = end -- Make the category text. local category if not title.isTalkPage and yesno(addTrackingCategory) ~= false then category = 'Hatnote templates with errors' category = string.format( '%s:%s', mw.site.namespaces[14].name, category ) else category = end return string.format( '%s', msg, helpText, category ) end


-- Format link -- -- Makes a wikilink from the given link and display values. Links are escaped -- with colons if necessary, and links to sections are detected and displayed -- with " § " as a separator rather than the standard MediaWiki "#". Used in -- the template.


function p.formatLink(frame) local args = getArgs(frame) local link = args[1] local display = args[2] if not link then return p.makeWikitextError( 'no link specified', 'Template:Format hatnote link#Errors', args.category ) end return p._formatLink(link, display) end

function p._formatLink(link, display) -- Find whether we need to use the colon trick or not. We need to use the -- colon trick for categories and files, as otherwise category links -- categorise the page and file links display the file. checkType('_formatLink', 1, link, 'string') checkType('_formatLink', 2, display, 'string', true) link = removeInitialColon(link) local namespace = p.findNamespaceId(link, false) local colon if namespace == 6 or namespace == 14 then colon = ':' else colon = end -- Find whether a faux display value has been added with the | magic -- word. if not display then local prePipe, postPipe = link:match('^(.-)|(.*)$') link = prePipe or link display = postPipe end -- Find the display value. if not display then local page, section = link:match('^(.-)#(.*)$') if page then display = page .. ' § ' .. section end end -- Assemble the link. if display then return string.format('%s', colon, link, display) else return string.format('%s%s', colon, link) end end


-- Hatnote -- -- Produces standard hatnote text. Implements the template.


function p.hatnote(frame) local args = getArgs(frame) local s = args[1] local options = {} if not s then return p.makeWikitextError( 'no text specified', 'Template:Hatnote#Errors', args.category ) end options.extraclasses = args.extraclasses options.selfref = args.selfref return p._hatnote(s, options) end

function p._hatnote(s, options) checkType('_hatnote', 1, s, 'string') checkType('_hatnote', 2, options, 'table', true) local classes = {'hatnote'} local extraclasses = options.extraclasses local selfref = options.selfref if type(extraclasses) == 'string' then classes[#classes + 1] = extraclasses end if selfref then classes[#classes + 1] = 'selfref' end return string.format( '
%s
', table.concat(classes, ' '), s )

end

return p-------------------------------------------------------------------------------- -- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the and meta-templates and includes -- -- helper functions for other Lua hatnote modules. --


local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local mArguments -- lazily initialise Module:Arguments local yesno -- lazily initialise Module:Yesno

local p = {}


-- Helper functions


local function getArgs(frame) -- Fetches the arguments from the parent frame. Whitespace is trimmed and -- blanks are removed. mArguments = require('Module:Arguments') return mArguments.getArgs(frame, {parentOnly = true}) end

local function removeInitialColon(s) -- Removes the initial colon from a string, if present. return s:match('^:?(.*)') end

function p.findNamespaceId(link, removeColon) -- Finds the namespace id (namespace number) of a link or a pagename. This -- function will not work if the link is enclosed in double brackets. Colons -- are trimmed from the start of the link by default. To skip colon -- trimming, set the removeColon parameter to true. checkType('findNamespaceId', 1, link, 'string') checkType('findNamespaceId', 2, removeColon, 'boolean', true) if removeColon ~= false then link = removeInitialColon(link) end local namespace = link:match('^(.-):') if namespace then local nsTable = mw.site.namespaces[namespace] if nsTable then return nsTable.id end end return 0 end

function p.formatPages(...) -- Formats a list of pages using formatLink and returns it as an array. Nil -- values are not allowed. local pages = {...} local ret = {} for i, page in ipairs(pages) do ret[i] = p._formatLink(page) end return ret end

function p.formatPageTables(...) -- Takes a list of page/display tables and returns it as a list of -- formatted links. Nil values are not allowed. local pages = {...} local links = {} for i, t in ipairs(pages) do checkType('formatPageTables', i, t, 'table') local link = t[1] local display = t[2] links[i] = p._formatLink(link, display) end return links end

function p.makeWikitextError(msg, helpLink, addTrackingCategory) -- Formats an error message to be returned to wikitext. If -- addTrackingCategory is not false after being returned from -- Module:Yesno, and if we are not on a talk page, a tracking category -- is added. checkType('makeWikitextError', 1, msg, 'string') checkType('makeWikitextError', 2, helpLink, 'string', true) yesno = require('Module:Yesno') local title = mw.title.getCurrentTitle() -- Make the help link text. local helpText if helpLink then helpText = ' (help)' else helpText = end -- Make the category text. local category if not title.isTalkPage and yesno(addTrackingCategory) ~= false then category = 'Hatnote templates with errors' category = string.format( '%s:%s', mw.site.namespaces[14].name, category ) else category = end return string.format( '%s', msg, helpText, category ) end


-- Format link -- -- Makes a wikilink from the given link and display values. Links are escaped -- with colons if necessary, and links to sections are detected and displayed -- with " § " as a separator rather than the standard MediaWiki "#". Used in -- the template.


function p.formatLink(frame) local args = getArgs(frame) local link = args[1] local display = args[2] if not link then return p.makeWikitextError( 'no link specified', 'Template:Format hatnote link#Errors', args.category ) end return p._formatLink(link, display) end

function p._formatLink(link, display) -- Find whether we need to use the colon trick or not. We need to use the -- colon trick for categories and files, as otherwise category links -- categorise the page and file links display the file. checkType('_formatLink', 1, link, 'string') checkType('_formatLink', 2, display, 'string', true) link = removeInitialColon(link) local namespace = p.findNamespaceId(link, false) local colon if namespace == 6 or namespace == 14 then colon = ':' else colon = end -- Find whether a faux display value has been added with the | magic -- word. if not display then local prePipe, postPipe = link:match('^(.-)|(.*)$') link = prePipe or link display = postPipe end -- Find the display value. if not display then local page, section = link:match('^(.-)#(.*)$') if page then display = page .. ' § ' .. section end end -- Assemble the link. if display then return string.format('%s', colon, link, display) else return string.format('%s%s', colon, link) end end


-- Hatnote -- -- Produces standard hatnote text. Implements the template.


function p.hatnote(frame) local args = getArgs(frame) local s = args[1] local options = {} if not s then return p.makeWikitextError( 'no text specified', 'Template:Hatnote#Errors', args.category ) end options.extraclasses = args.extraclasses options.selfref = args.selfref return p._hatnote(s, options) end

function p._hatnote(s, options) checkType('_hatnote', 1, s, 'string') checkType('_hatnote', 2, options, 'table', true) local classes = {'hatnote'} local extraclasses = options.extraclasses local selfref = options.selfref if type(extraclasses) == 'string' then classes[#classes + 1] = extraclasses end if selfref then classes[#classes + 1] = 'selfref' end return string.format( '
%s
', table.concat(classes, ' '), s )

end

return p
  1. ^ a b c
  2. ^
  3. ^
  4. ^
  5. ^ Moon-bound twin GRAIL spacecraft launch success
  6. ^ Spaceflight101
  7. ^
  8. ^ GRAIL Twins crash into the Moon to complete highly successful Mission
  9. ^
  10. ^ GRAVITY RECOVERY AND INTERIOR LABORATORY (GRAIL) MISSION: STATUS AT THE INITIATION OF THE SCIENCE MAPPING PHASE, 43rd Lunar and Planetary Science Conference (2012)
  11. ^ Washington Post December 17, 2012
  12. ^ a b
  13. ^ Gravity Recovery and Interior Laboratory: News & Features: NASA's GRAIL Moon Twins Begin Extended Mission Science. Solarsystem.nasa.gov. Retrieved on 2013-07-21.
  14. ^ Gravity Recovery and Interior Laboratory: News & Features: NASA's GRAIL Creates Most Accurate Moon Gravity Map. Solarsystem.nasa.gov. Retrieved on 2013-07-21.
  15. ^ a b
  16. ^ a b
  17. ^
  18. ^
  19. ^
  20. ^ GRAIL (Gravity Recovery and Interior Laboratory)
  21. ^
  22. ^
  23. ^
  24. ^
  25. ^ a b
  26. ^
  27. ^
  28. ^
  29. ^
  30. ^
  31. ^
  32. ^

External links

  • GRAIL: Mission NASA
  • NASA GRAIL (Gravity Recovery and Interior Laboratory) – mission home page
  • MIT GRAIL Home Page
  • NASA Science Missions: GRAIL (Gravity Recovery and Interior Laboratory)
  • NASA 360 New Worlds New Discoveries 2/2 Retrieved 6/3/2011.
  • Behind The Scenes of My NASA GRAIL Experience – Day One (AM)