<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ACelestial_object_quadrangle</id>
	<title>Module:Celestial object quadrangle - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ACelestial_object_quadrangle"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Celestial_object_quadrangle&amp;action=history"/>
	<updated>2026-05-06T20:40:51Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:Celestial_object_quadrangle&amp;diff=135520&amp;oldid=prev</id>
		<title>imported&gt;Frietjes: per List of quadrangles on Mercury#Schema of the quadrangles, thanks to User:Jstuby for spotting the error</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Celestial_object_quadrangle&amp;diff=135520&amp;oldid=prev"/>
		<updated>2022-06-09T15:46:32Z</updated>

		<summary type="html">&lt;p&gt;per &lt;a href=&quot;/index.php?title=List_of_quadrangles_on_Mercury&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;List of quadrangles on Mercury (page does not exist)&quot;&gt;List of quadrangles on Mercury#Schema of the quadrangles&lt;/a&gt;, thanks to &lt;a href=&quot;/index.php?title=User:Jstuby&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User:Jstuby (page does not exist)&quot;&gt;User:Jstuby&lt;/a&gt; for spotting the error&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- This module implements/replaces&lt;br /&gt;
-- [[Template:Lunar quadrangle]]&lt;br /&gt;
-- [[Template:Mars quadrangle]]&lt;br /&gt;
-- [[Template:Venus quadrangle]]&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local function moonquad(lat, lon)&lt;br /&gt;
	local function LQ(n)&lt;br /&gt;
		if n &amp;lt; 10 then &lt;br /&gt;
			return &amp;#039;LQ0&amp;#039; .. n&lt;br /&gt;
		else &lt;br /&gt;
			return &amp;#039;LQ&amp;#039; .. n&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- Note: requires positive longitude coordinates&lt;br /&gt;
	if lat &amp;gt; 65 then&lt;br /&gt;
		return LQ(1)&lt;br /&gt;
	elseif lat &amp;gt; 30 then&lt;br /&gt;
		if lon &amp;gt;= 180 then&lt;br /&gt;
			return LQ(2 + math.floor( (lon - 180) / 60 ) )&lt;br /&gt;
		else&lt;br /&gt;
			return LQ(5 + math.floor( lon / 60 ) )&lt;br /&gt;
		end&lt;br /&gt;
	elseif lat &amp;gt;= 0 then&lt;br /&gt;
		if lon &amp;gt;= 180 then&lt;br /&gt;
			return LQ(8 + math.floor( (lon - 180) / 45 ) )&lt;br /&gt;
		else&lt;br /&gt;
			return LQ(12 + math.floor( lon / 45 ) )&lt;br /&gt;
		end&lt;br /&gt;
	elseif lat &amp;gt;= -30 then&lt;br /&gt;
		if lon &amp;gt;= 180 then&lt;br /&gt;
			return LQ(16 + math.floor( (lon - 180) / 45 ) )&lt;br /&gt;
		else&lt;br /&gt;
			return LQ(20 + math.floor( lon / 45 ) )&lt;br /&gt;
		end&lt;br /&gt;
	elseif lat &amp;gt;= -65 then&lt;br /&gt;
		if lon &amp;gt;= 180 then&lt;br /&gt;
			return LQ(24 + math.floor( (lon - 180) / 60 ) )&lt;br /&gt;
		else&lt;br /&gt;
			return LQ(27 + math.floor( lon / 60 ) )&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		return LQ(30)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return &amp;#039;Error&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function marsquad(lat, lon)&lt;br /&gt;
	-- Note: requires positive longitude coordinates&lt;br /&gt;
	if lat &amp;gt; 65 then &lt;br /&gt;
		return &amp;#039;Mare Boreum&amp;#039;&lt;br /&gt;
	elseif lat &amp;gt; 30 then &lt;br /&gt;
		if lon &amp;lt; 60 then return &amp;#039;Ismenius Lacus&amp;#039;&lt;br /&gt;
		elseif lon &amp;lt; 120 then return &amp;#039;Casius&amp;#039;&lt;br /&gt;
		elseif lon &amp;lt; 180 then return &amp;#039;Cebrenia&amp;#039;&lt;br /&gt;
		elseif lon &amp;lt; 240 then return &amp;#039;Diacria&amp;#039;&lt;br /&gt;
		elseif lon &amp;lt; 300 then return &amp;#039;Arcadia&amp;#039;&lt;br /&gt;
		else return &amp;#039;Mare Acidalium&amp;#039; end&lt;br /&gt;
	elseif lat &amp;gt;= 0 then &lt;br /&gt;
		if lon &amp;lt; 45 then return &amp;#039;Arabia&amp;#039;&lt;br /&gt;
		elseif lon &amp;lt;  90 then return &amp;#039;Syrtis Major&amp;#039;&lt;br /&gt;
		elseif lon &amp;lt; 135 then return &amp;#039;Amenthes&amp;#039;&lt;br /&gt;
		elseif lon &amp;lt; 180 then return &amp;#039;Elysium&amp;#039;&lt;br /&gt;
		elseif lon &amp;lt; 225 then return &amp;#039;Amazonis&amp;#039;&lt;br /&gt;
		elseif lon &amp;lt; 270 then return &amp;#039;Tharsis&amp;#039;&lt;br /&gt;
		elseif lon &amp;lt; 315 then return &amp;#039;Lunae Palus&amp;#039;&lt;br /&gt;
		else return &amp;#039;Oxia Palus&amp;#039; end&lt;br /&gt;
	elseif lat &amp;gt;= -30 then &lt;br /&gt;
		if lon &amp;lt; 45 then return &amp;#039;Sinus Sabaeus&amp;#039;&lt;br /&gt;
		elseif lon &amp;lt;  90 then return &amp;#039;Iapygia&amp;#039;&lt;br /&gt;
		elseif lon &amp;lt; 135 then return &amp;#039;Mare Tyrrhenum&amp;#039;&lt;br /&gt;
		elseif lon &amp;lt; 180 then return &amp;#039;Aeolis&amp;#039;&lt;br /&gt;
		elseif lon &amp;lt; 225 then return &amp;#039;Memnonia&amp;#039;&lt;br /&gt;
		elseif lon &amp;lt; 270 then return &amp;#039;Phoenicis Lacus&amp;#039;&lt;br /&gt;
		elseif lon &amp;lt; 315 then return &amp;#039;Coprates&amp;#039;&lt;br /&gt;
		else return &amp;#039;Margaritifer Sinus&amp;#039; end&lt;br /&gt;
	elseif lat &amp;gt;= -65 then &lt;br /&gt;
		if lon &amp;lt; 60 then return &amp;#039;Noachis&amp;#039;&lt;br /&gt;
		elseif lon &amp;lt; 120 then return &amp;#039;Hellas&amp;#039;&lt;br /&gt;
		elseif lon &amp;lt; 180 then return &amp;#039;Eridania&amp;#039;&lt;br /&gt;
		elseif lon &amp;lt; 240 then return &amp;#039;Phaethontis&amp;#039;&lt;br /&gt;
		elseif lon &amp;lt; 300 then return &amp;#039;Thaumasia&amp;#039;&lt;br /&gt;
		else return &amp;#039;Argyre&amp;#039; end&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;#039;Mare Australe&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function mercuryquad(lat, lon)&lt;br /&gt;
	-- Note: requires positive longitude coordinates&lt;br /&gt;
	if lat &amp;gt;= 66 then&lt;br /&gt;
		return &amp;#039;Borealis&amp;#039;&lt;br /&gt;
	elseif lat &amp;gt;= 21 then&lt;br /&gt;
		if lon &amp;lt; 90 then return &amp;#039;Hokusai&amp;#039;&lt;br /&gt;
		elseif lon &amp;lt; 180 then return &amp;#039;Raditladi&amp;#039;&lt;br /&gt;
		elseif lon &amp;lt; 270 then return &amp;#039;Shakespeare&amp;#039;&lt;br /&gt;
		else return &amp;#039;Victoria&amp;#039; end&lt;br /&gt;
	elseif lat &amp;gt; -21 then&lt;br /&gt;
		if lon &amp;lt; 72 then return &amp;#039;Derain&amp;#039;&lt;br /&gt;
		elseif lon &amp;lt; 144 then return &amp;#039;Eminescu&amp;#039;&lt;br /&gt;
		elseif lon &amp;lt; 216 then return &amp;#039;Tolstoj&amp;#039;&lt;br /&gt;
		elseif lon &amp;lt; 288 then return &amp;#039;Beethoven&amp;#039;&lt;br /&gt;
		else return &amp;#039;Kuiper&amp;#039; end&lt;br /&gt;
	elseif lat &amp;gt; -66 then&lt;br /&gt;
		if lon &amp;lt; 90 then return &amp;#039;Debussy&amp;#039;&lt;br /&gt;
		elseif lon &amp;lt; 180 then return &amp;#039;Neruda&amp;#039;&lt;br /&gt;
		elseif lon &amp;lt; 270 then return &amp;#039;Michelangelo&amp;#039;&lt;br /&gt;
		else return &amp;#039;Discovery&amp;#039; end&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;#039;Bach&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return &amp;#039;Error&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function venusquad(lat, lon)&lt;br /&gt;
	-- Note: requires positive longitude coordinates&lt;br /&gt;
	if lat &amp;gt; 57 then&lt;br /&gt;
		return &amp;#039;Ishtar Terra&amp;#039;&lt;br /&gt;
	elseif lat &amp;gt;= 0 then&lt;br /&gt;
		if lon &amp;lt; 60 or lon &amp;gt;= 300 then return &amp;#039;Sedna Planitia&amp;#039;&lt;br /&gt;
		elseif lon &amp;lt; 180 then return &amp;#039;Niobe Planitia&amp;#039;&lt;br /&gt;
		else return &amp;#039;Guinevere Planitia&amp;#039; end&lt;br /&gt;
	elseif lat &amp;gt;= -57 then&lt;br /&gt;
		if lon &amp;lt; 60  or lon &amp;gt;= 300 then return &amp;#039;Lavinia Planitia&amp;#039;&lt;br /&gt;
		elseif lon &amp;lt; 180 then return &amp;#039;Aphrodite Terra&amp;#039;&lt;br /&gt;
		else return &amp;#039;Helen Planitia&amp;#039; end&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;#039;Lada Terra&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function quad_name(lat, lon, globe)&lt;br /&gt;
	-- lower case&lt;br /&gt;
	globe = globe:lower() or &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	-- convert to numbers&lt;br /&gt;
	lat = tonumber(lat) or &amp;#039;&amp;#039;&lt;br /&gt;
	lon = tonumber(lon) or &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	-- get the quad name&lt;br /&gt;
	if lat ~= &amp;#039;&amp;#039; and lon ~= &amp;#039;&amp;#039; and globe ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		if lon &amp;lt; 0 then lon = lon + 360 end&lt;br /&gt;
		if lon &amp;lt; 0 or lon &amp;gt; 360 then&lt;br /&gt;
			return &amp;#039;Error&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		if globe == &amp;#039;mars&amp;#039; then&lt;br /&gt;
			return marsquad(lat, lon)&lt;br /&gt;
		elseif globe == &amp;#039;mercury&amp;#039; then&lt;br /&gt;
			return mercuryquad(lat, lon)&lt;br /&gt;
		elseif globe == &amp;#039;moon&amp;#039; then&lt;br /&gt;
			return moonquad(lat, lon)&lt;br /&gt;
		elseif globe == &amp;#039;venus&amp;#039; then&lt;br /&gt;
			return venusquad(lat, lon)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return &amp;#039;Error&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.category(frame)&lt;br /&gt;
	local args = frame.args&lt;br /&gt;
	local res = quad_name(args[&amp;#039;lat&amp;#039;] or &amp;#039;&amp;#039;, args[&amp;#039;lon&amp;#039;] or &amp;#039;&amp;#039;, args[&amp;#039;globe&amp;#039;] or &amp;#039;&amp;#039;)&lt;br /&gt;
	&lt;br /&gt;
	if res ~= &amp;#039;Error&amp;#039; then&lt;br /&gt;
		if args[&amp;#039;nameonly&amp;#039;] and args[&amp;#039;nameonly&amp;#039;] ~= &amp;#039;&amp;#039; then&lt;br /&gt;
			return res&lt;br /&gt;
		else&lt;br /&gt;
			return &amp;#039;[[Category:&amp;#039; .. res .. &amp;#039; quadrangle]]&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return &amp;#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.name(frame)&lt;br /&gt;
	local args = frame.args&lt;br /&gt;
	local res = quad_name(args[&amp;#039;lat&amp;#039;] or &amp;#039;&amp;#039;, args[&amp;#039;lon&amp;#039;] or &amp;#039;&amp;#039;, args[&amp;#039;globe&amp;#039;] or &amp;#039;&amp;#039;)&lt;br /&gt;
	&lt;br /&gt;
	if res ~= &amp;#039;Error&amp;#039; then&lt;br /&gt;
		return res&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Frietjes</name></author>
	</entry>
</feed>