Skip to content

Instantly share code, notes, and snippets.

@tobyink
Created September 20, 2020 13:23
Show Gist options
  • Select an option

  • Save tobyink/01b870c3febc8df0b1ca233132a7d6ab to your computer and use it in GitHub Desktop.

Select an option

Save tobyink/01b870c3febc8df0b1ca233132a7d6ab to your computer and use it in GitHub Desktop.
Angular sizes of moons and planets seen from other bodies
use utf8::all;
use Moo ();
use Z qw( Dumper );
use Math::Trig qw( asin pi );
my $app = app sub {
role 'Body' => sub {
my $CleanNumber = Num->plus_coercions( Str, sub {
my ( $value ) = split /±/;
$value =~ s/,//g;
$value =~ s/^~//;
$value =~ s/\s*//g;
$value;
} );
requires 'parent';
has 'children' => (
type => 'ArrayRef[Body]',
default => sub { [] },
handles_via => 'Array',
handles => [ 'adopt' => 'push' ],
);
has 'numeral' => ( type => Str );
has 'name' => ( type => Str );
has 'radius' => ( type => $CleanNumber );
has 'distance' => ( type => $CleanNumber ); # dist from parent
has 'angular_size' => ( type => Num, is => 'lazy' ); # size when seen from parent
has 'angular_size_r' => ( type => Maybe[Num], is => 'lazy' ); # parent's size from this body
method '_build_angular_size' => sub {
my ( $self ) = ( shift );
return 2 * asin( $self->radius / $self->distance ) * ( 180 / pi );
};
method '_build_angular_size_r' => sub {
my ( $self ) = ( shift );
return if is_Undef $self->parent;
return if is_Undef $self->parent->radius;
return 2 * asin( $self->parent->radius / $self->distance ) * ( 180 / pi );
};
};
class 'Star' => sub {
with 'Body';
has 'parent' => (
type => 'Any',
default => sub { undef },
trigger => sub {
my ( $self, $parent ) = ( shift, @_ );
$parent->adopt( $self ) if $self->FACTORY->type_library->get_type('Body')->check($parent);
return $self;
},
);
factory 'SUN' => sub {
my ( $factory, $class, @args ) = @_;
state $sun ||= $class->new(
'name' => 'Sol',
'radius' => '696340',
);
return $sun;
};
};
class 'Planet' => sub {
# Technically these are not necessarily planets, but planet-like bodies.
with 'Body';
has 'parent' => (
is => 'lazy',
type => 'Star',
builder => sub {
my ( $self ) = ( shift );
return $self->FACTORY->SUN;
},
trigger => sub {
my ( $self, $parent ) = ( shift, @_ );
$parent->adopt( $self );
return $self;
},
weak_ref => true,
);
my %cache;
my %data = (
'Mercury' => { 'distance' => '57,909,175', 'radius' => '2,439.64' },
'Venus' => { 'distance' => '108,208,930', 'radius' => '6,051.59' },
'Earth' => { 'distance' => '149,597,890', 'radius' => '6,378.10' },
'Mars' => { 'distance' => '227,936,640', 'radius' => '3,397.00' },
'Ceres' => { 'distance' => '413,700,000', 'radius' => '473.00' },
'Jupiter' => { 'distance' => '778,412,010', 'radius' => '71,492.68' },
'Saturn' => { 'distance' => '1,426,725,400', 'radius' => '60,267.14' },
'Uranus' => { 'distance' => '2,870,972,200', 'radius' => '25,557.25' },
'Neptune' => { 'distance' => '4,498,252,900', 'radius' => '24,766.36' },
'Orcus' => { 'distance' => '5,896,946,000', 'radius' => '458.50' },
'Pluto' => { 'distance' => '5,906,380,000', 'radius' => '1,187.00' },
'Salacia' => { 'distance' => '6,310,600,000', 'radius' => '423.00' },
'Haumea' => { 'distance' => '6,484,000,000', 'radius' => '816.00' },
'Quaoar' => { 'distance' => '6,535,930,000', 'radius' => '560.50' },
'Makemake' => { 'distance' => '6,850,000,000', 'radius' => '715.00' },
'Varda' => { 'distance' => '7,105,900,000', 'radius' => '750.00' },
'Gonggong' => { 'distance' => '10,072,433,340', 'radius' => '615.00' },
'Eris' => { 'distance' => '10,210,000,000', 'radius' => '1,163.00' },
'Sedna' => { 'distance' => '78,668,000,000', 'radius' => '497.50' },
);
coerce Str, 'from_name', sub {
my ( $class, $name ) = @_;
$cache{$name} ||= $class->new(
name => $name,
parent => $class->FACTORY->SUN,
%{ $data{$name} or die("Huh? $name") }
);
};
};
class 'Moon' => sub {
with 'Body';
has 'parent' => (
required => true,
is => 'lazy',
type => 'Planet',
trigger => sub {
my ( $self, $parent ) = ( shift, @_ );
$parent->adopt( $self );
return $self;
},
weak_ref => true,
);
multi_factory 'new_moon'
=> [ ArrayRef ]
=> sub {
my ( $factory, $class, $row ) = ( shift, shift, @_ );
$class->new( {
'parent' => $row->[1],
'numeral' => $row->[2],
'name' => $row->[3],
'radius' => $row->[4],
'distance' => $row->[5],
} );
};
multi_factory 'new_moon'
=> [ HashRef ]
=> sub {
my ( $factory, $class, $arg ) = ( shift, shift, @_ );
return $class->new( $arg );
};
};
role 'Body::Reader' => sub {
requires 'body_factory';
method 'read'
=> [ FileHandle ]
=> sub {
my ( $self, $fh ) = ( shift, @_ );
require Text::CSV_XS;
state $csv = Text::CSV_XS->new({ auto_diag => 1 });
my $method = $self->body_factory;
my @output;
while ( my $row = $csv->getline( $fh ) ) {
push @output, $self->FACTORY->$method( $row );
}
return @output;
};
};
class 'Moon::Reader' => sub {
with 'Body::Reader';
constant 'body_factory' => 'new_moon';
};
};
$app->new_moon_reader->read( \*DATA );
my $sun = $app->SUN;
sub similar_numbers {
my $tolerance = 1.5;
my ( $x, $y ) = @_;
return false unless is_Defined $x;
return false unless is_Defined $y;
return true if ( $x > $y/$tolerance and $x < $y*$tolerance );
return true if ( $y > $x/$tolerance and $y < $x*$tolerance );
return false;
}
for my $planet ( @{ $sun->children } ) {
for my $moon ( @{ $planet->children } ) {
if ( similar_numbers( $moon->angular_size, $planet->angular_size_r ) ) {
printf(
"From planet %s, moon %s looks %0.3f deg and %s looks %0.3f deg.\n",
$planet->name,
$moon->name,
$moon->angular_size,
$planet->parent->name,
$planet->angular_size_r,
);
}
if ( similar_numbers( $moon->angular_size_r, $planet->angular_size_r ) ) {
printf(
"From moon %s, planet %s looks %0.3f deg and %s looks %0.3f deg.\n",
$moon->name,
$planet->name,
$moon->angular_size_r,
$planet->parent->name,
$planet->angular_size_r,
);
}
}
}
__DATA__
,Earth,I (1),Luna,"1,737.1","384,399",27.321582,Prehistoric,—,Synchronous rotation,[13]
,Mars,I (1),Phobos,11.1±0.15,"9,380",0.319,1877,Hall,,[14][15][16]
,Mars,II (2),Deimos,6.2±0.18,"23,460",1.262,1877,Hall,,[14][15][16]
,Jupiter,I (1),Io,"1,818.1±0.1","421,800",1.769,1610,Galileo,Main-group moon (Galilean),[16][17]
,Jupiter,II (2),Europa,1560.7±0.7,"671,100",3.551,1610,Galileo,Main-group moon (Galilean),[16][17]
,Jupiter,III (3),Ganymede,"2,634.1±0.3","1,070,400",7.155,1610,Galileo,Main-group moon (Galilean),[16][17]
,Jupiter,IV (4),Callisto,"2,408.4±0.3","1,882,700",16.69,1610,Galileo,Main-group moon (Galilean),[16][17]
,Jupiter,V (5),Amalthea,83.5±2,"181,400",0.498,1892,Barnard,Inner moon (Amalthea),[15][16][18]
,Jupiter,VI (6),Himalia,67±10[19],"11,461,000",250.56,1904,Perrine,Prograde irregular (Himalia),[15][16][20]
,Jupiter,VII (7),Elara,43,"11,741,000",259.64,1905,Perrine,Prograde irregular (Himalia),[15][16][21]
,Jupiter,VIII (8),Pasiphae,30,"23,624,000",743.63 (r),1908,Melotte,Retrograde irregular (Pasiphae),[15][16][22]
,Jupiter,IX (9),Sinope,19,"23,939,000",758.90 (r),1914,Nicholson,Retrograde irregular (Pasiphae),[15][16][23]
,Jupiter,X (10),Lysithea,18,"11,717,000",259.20,1938,Nicholson,Prograde irregular (Himalia),[15][16][24]
,Jupiter,XI (11),Carme,23,"23,404,000",734.17 (r),1938,Nicholson,Retrograde irregular (Carme),[15][16][24]
,Jupiter,XII (12),Ananke,14,"21,276,000",629.77 (r),1951,Nicholson,Retrograde irregular (Ananke),[15][16][25]
,Jupiter,XIII (13),Leda,10,"11,165,000",240.92,1974,Kowal,Prograde irregular (Himalia),[15][16][26]
,Jupiter,XIV (14),Thebe,49.3±2.0,"221,900",0.675,1979,Synnott (Voyager 1),Inner moon (Amalthea),[15][16][27]
,Jupiter,XV (15),Adrastea,8.2±2.0,"129,000",0.298,1979,"Jewitt, Danielson (Voyager 1)",Inner moon (Amalthea),[15][16][28]
,Jupiter,XVI (16),Metis,21.5±2.0,"128,000",0.295,1979,Synnott (Voyager 1),Inner moon (Amalthea),[15][16][29]
,Jupiter,XVII (17),Callirrhoe,4.3,"24,103,000",758.77 (r),2000,"Scotti, Spahr, McMillan, Larsen, Montani, Gleason, Gehrels",Retrograde irregular (Pasiphae),[15][16][30]
,Jupiter,XVIII (18),Themisto,4,"7,284,000",130.02,1975/2000,"Kowal and Roemer (original); Sheppard, Jewitt, Fernández, Magnier (rediscovery)",Prograde irregular (Themisto),[15][16][31][32]
,Jupiter,XIX (19),Megaclite,2.7,"23,493,000",752.86 (r),2000,"Sheppard, Jewitt, Fernández, Magnier, Dahm, Evans",Retrograde irregular (Pasiphae),[15][16][33]
,Jupiter,XX (20),Taygete,2.5,"23,280,000",732.41 (r),2000,"Sheppard, Jewitt, Fernández, Magnier, Dahm, Evans",Retrograde irregular (Carme),[15][16][33]
,Jupiter,XXI (21),Chaldene,1.9,"23,100,000",723.72 (r),2000,"Sheppard, Jewitt, Fernández, Magnier, Dahm, Evans",Retrograde irregular (Carme),[15][16][33]
,Jupiter,XXII (22),Harpalyke,2.2,"20,858,000",623.32 (r),2000,"Sheppard, Jewitt, Fernández, Magnier, Dahm, Evans",Retrograde irregular (Ananke),[15][16][33]
,Jupiter,XXIII (23),Kalyke,2.6,"23,483,000",742.06 (r),2000,"Sheppard, Jewitt, Fernández, Magnier, Dahm, Evans",Retrograde irregular (Carme),[15][16][33]
,Jupiter,XXIV (24),Iocaste,2.6,"21,060,000",631.60 (r),2000,"Sheppard, Jewitt, Fernández, Magnier, Dahm, Evans",Retrograde irregular (Ananke),[15][16][33]
,Jupiter,XXV (25),Erinome,1.6,"23,196,000",728.46 (r),2000,"Sheppard, Jewitt, Fernández, Magnier, Dahm, Evans",Retrograde irregular (Carme),[15][16][33]
,Jupiter,XXVI (26),Isonoe,1.9,"23,155,000",726.23 (r),2000,"Sheppard, Jewitt, Fernández, Magnier, Dahm, Evans",Retrograde irregular (Carme),[15][16][33]
,Jupiter,XXVII (27),Praxidike,3.4,"20,908,000",625.39 (r),2000,"Sheppard, Jewitt, Fernández, Magnier, Dahm, Evans",Retrograde irregular (Ananke),[15][16][33]
,Jupiter,XXVIII (28),Autonoe,2,"24,046,000",760.95 (r),2001,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Pasiphae),
,Jupiter,XXIX (29),Thyone,2,"20,939,000",627.21 (r),2001,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Ananke),[15][16][34]
,Jupiter,XXX (30),Hermippe,2,"21,131,000",633.9 (r),2001,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Ananke),[15][16][34]
,Jupiter,XXXI (31),Aitne,1.5,"23,229,000",730.18 (r),2001,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Carme),[15][16][34]
,Jupiter,XXXII (32),Eurydome,1.5,"22,865,000",717.33 (r),2001,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Pasiphae),[15][16][34]
,Jupiter,XXXIII (33),Euanthe,1.5,"20,797,000",620.49 (r),2001,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Ananke),[15][16][34]
,Jupiter,XXXIV (34),Euporie,1,"19,304,000",550.74 (r),2001,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Ananke),[15][16][34]
,Jupiter,XXXV (35),Orthosie,1,"20,720,000",622.56 (r),2001,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Ananke),[15][16][34]
,Jupiter,XXXVI (36),Sponde,1,"23,487,000",748.34 (r),2001,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Pasiphae),[15][16][34]
,Jupiter,XXXVII (37),Kale,1,"23,217,000",729.47 (r),2001,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Carme),[15][16][34]
,Jupiter,XXXVIII (38),Pasithee,1,"23,004,000",719.44 (r),2001,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Carme),[15][16][34]
,Jupiter,XXXIX (39),Hegemone,1.5,"23,577,000",739.88 (r),2003,"Sheppard, Jewitt, Kleyna, Fernández",Retrograde irregular (Pasiphae),[15][16]
,Jupiter,XL (40),Mneme,1,"21,035,000",620.04 (r),2003,"Gladman, Allen",Retrograde irregular (Ananke),[15][16]
,Jupiter,XLI (41),Aoede,2,"23,980,000",761.50 (r),2003,"Sheppard, Jewitt, Kleyna, Fernández, Hsieh",Retrograde irregular (Pasiphae),[15][16]
,Jupiter,XLII (42),Thelxinoe,1,"21,164,000",628.09 (r),2003,"Sheppard, Jewitt, Kleyna, Gladman, Kavelaars, Petit, Allen",Retrograde irregular (Ananke),[15][16]
,Jupiter,XLIII (43),Arche,1.5,"23,355,000",731.95 (r),2002,"Sheppard, Meech, Hsieh, Tholen, Tonry",Retrograde irregular (Carme),[15][16][34]
,Jupiter,XLIV (44),Kallichore,1,"23,288,000",728.73 (r),2003,"Sheppard, Jewitt, Kleyna, Fernández",Retrograde irregular (Carme),[15][16]
,Jupiter,XLV (45),Helike,2,"21,069,000",626.32 (r),2003,"Sheppard, Jewitt, Kleyna, Fernández, Hsieh",Retrograde irregular (Ananke),[15][16]
,Jupiter,XLVI (46),Carpo,1.5,"17,058,000",456.30,2003,"Sheppard, Gladman, Kavelaars, Petit, Allen, Jewitt, Kleyna",Prograde irregular (Carpo),[15][16]
,Jupiter,XLVII (47),Eukelade,2,"23,328,000",730.47 (r),2003,"Sheppard, Jewitt, Kleyna, Fernández, Hsieh",Retrograde irregular (Carme),[15][16]
,Jupiter,XLVIII (48),Cyllene,1,"23,809,000",752 (r),2003,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Pasiphae),[15][16]
,Jupiter,XLIX (49),Kore,1,"24,543,000",779.17 (r),2003,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Pasiphae),[15][16]
,Jupiter,L (50),Herse,1,"22,983,000",714.51 (r),2003,"Gladman, Sheppard, Jewitt, Kleyna, Kavelaars, Petit, Allen",Retrograde irregular (Carme),[15][16]
,Jupiter,LI (51),S/2010 J 1,1,"23,314,335",723.2 (r),2010,"Jacobson, Brozović, Gladman, Alexandersen",Retrograde irregular (Carme),[35]
,Jupiter,LII (52),S/2010 J 2,0.5,"20,307,150",588.1 (r),2010,Veillet,Retrograde irregular (Ananke),[35]
,Jupiter,LIII (53),Dia,2,"12,570,000",287.93,2000,"Sheppard, Jewitt, Kleyna, Fernández, Hsieh",Prograde irregular (Himalia),[35]
,Jupiter,LIV (54),S/2016 J 1,3,"20,595,480",602.7 (r),2016,Sheppard,Retrograde irregular (Ananke),[35]
,Jupiter,LV (55),S/2003 J 18,1,"20,426,000",596.58 (r),2003,"Gladman, Sheppard, Jewitt, Kleyna, Kavelaars, Petit, Allen",Retrograde irregular (Ananke),[15][16]
,Jupiter,LVI (56),S/2011 J 2,0.5,"23,329,710",726.8 (r),2011,Sheppard,Retrograde irregular (Pasiphae),[35]
,Jupiter,LVII (57),Eirene,2,"23,498,000",738.74 (r),2003,"Sheppard, Jewitt, Kleyna, Fernández, Hsieh",Retrograde irregular (Carme),[15][16]
,Jupiter,LVIII (58),Philophrosyne,1,"22,630,000",689.77 (r),2003,"Sheppard, Jewitt, Kleyna, Fernández",Retrograde irregular (Pasiphae),[15][16]
,Jupiter,LIX (59),S/2017 J 1,2,"23,483,978",734.2 (r),2017,Sheppard,Retrograde irregular (Pasiphae),[35]
,Jupiter,LX (60),Eupheme,1,"20,224,000",583.88 (r),2003,"Sheppard, Jewitt, Kleyna, Fernández, Hsieh",Retrograde irregular (Ananke),[15][16]
,Jupiter,LXI (61),S/2003 J 19,1,"23,535,000",740.43 (r),2003,"Gladman, Sheppard, Jewitt, Kleyna, Kavelaars, Petit, Allen",Retrograde irregular (Carme),[15][16]
,Jupiter,LXII (62),Valetudo,0.5,"18,928,095",532.0,2016,Sheppard,Prograde irregular (Valetudo),[35]
,Jupiter,LXIII (63),S/2017 J 2,1,"23,240,957",723.8 (r),2017,Sheppard,Retrograde irregular (Carme),[35]
,Jupiter,LXIV (64),S/2017 J 3,1,"20,639,315",605.8 (r),2017,Sheppard,Retrograde irregular (Ananke),[35]
,Jupiter,LXV (65),Pandia,1,"11,494,801",251.8 (r),2017,Sheppard,Prograde irregular (Himalia),[35]
,Jupiter,LXVI (66),S/2017 J 5,1,"23,169,389",720.5 (r),2017,Sheppard,Retrograde irregular (Carme),[35]
,Jupiter,LXVII (67),S/2017 J 6,1,"22,394,682",684.7 (r),2017,Sheppard,Retrograde irregular (Pasiphae),[35]
,Jupiter,LXVIII (68),S/2017 J 7,1,"20,571,458",602.8 (r),2017,Sheppard,Retrograde irregular (Ananke),[35]
,Jupiter,LXIX (69),S/2017 J 8,0.5,"23,174,446",720.7 (r),2017,Sheppard,Retrograde irregular (Carme),[35]
,Jupiter,LXX (70),S/2017 J 9,1,"21,429,955",640.9 (r),2017,Sheppard,Retrograde irregular (Ananke),[35]
,Jupiter,LXXI (71),Ersa,1.5,"11,453,004",250.4 (r),2018,Sheppard,Retrograde irregular (Himalia),[35]
,Jupiter,LXXII (72),S/2011 J 1,0.5,"20,155,290",580.7 (r),2011,Sheppard,Retrograde irregular (Carme),[35]
,Jupiter,—,S/2003 J 2,1,"28,455,000",981.55 (r),2003,"Sheppard, Jewitt, Kleyna, Fernández, Hsieh",Retrograde irregular (Pasiphae?),[15][16]
,Jupiter,—,S/2003 J 4,1,"23,933,000",755.26 (r),2003,"Sheppard, Jewitt, Kleyna, Fernández, Hsieh",Retrograde irregular (Pasiphae?),[15][16]
,Jupiter,—,S/2003 J 9,0.5,"23,388,000",733.30 (r),2003,"Sheppard, Jewitt, Kleyna, Fernández",Retrograde irregular (Carme),[15][16]
,Jupiter,—,S/2003 J 10,1,"23,044,000",716.25 (r),2003,"Sheppard, Jewitt, Kleyna, Fernández",Retrograde irregular (Carme?),[15][16]
,Jupiter,—,S/2003 J 12,0.5,"17,833,000",489.72 (r),2003,"Sheppard, Jewitt, Kleyna, Fernández",Retrograde irregular (Ananke?),[15][16]
,Jupiter,—,S/2003 J 16,1,"20,956,000",616.33 (r),2003,"Gladman, Sheppard, Jewitt, Kleyna, Kavelaars, Petit, Allen",Retrograde irregular (Ananke),[15][16]
,Jupiter,—,S/2003 J 23,1,"23,566,000",732.45 (r),2004,"Sheppard, Jewitt, Kleyna, Fernández",Retrograde irregular (Pasiphae?),[15][16]
,Saturn,I (1),Mimas,198.2±0.4,"185,540",0.942,1789,Herschel,Main-group moon,[15][16]
,Saturn,II (2),Enceladus,252.3±0.6,"238,040",1.370,1789,Herschel,Main-group moon,[15][16]
,Saturn,III (3),Tethys,536.3±1.5,"294,670",1.888,1684,Cassini,Main-group moon (Sidera Lodoicea),[15][16]
,Saturn,IV (4),Dione,562.5±1.5,"377,420",2.737,1684,Cassini,Main-group moon (Sidera Lodoicea),[15][16]
,Saturn,V (5),Rhea,764.5±2.0,"527,070",4.518,1672,Cassini,Main-group moon (Sidera Lodoicea),[15][16]
,Saturn,VI (6),Titan,"2,575.5±2.0","1,221,870",15.95,1655,Huygens,Main-group moon,[15][16]
,Saturn,VII (7),Hyperion,138.6,"1,500,880",21.28,1848,"W.Bond, G. Bond, and Lassell",Main-group moon,[15][16]
,Saturn,VIII (8),Iapetus,734.5±4.0,"3,560,840",79.33,1671,Cassini,Main-group moon (Sidera Lodoicea),[15][16]
,Saturn,IX (9),Phoebe,106.6±1.1,"12,947,780",550.31 (r),1899,Pickering,Retrograde irregular (Norse),[15][16]
,Saturn,X (10),Janus,90.4±3.0,"151,460",0.695,1966,Dollfus; Voyager 1 (confirmed),Inner moon (co-orbital),[15][16]
,Saturn,XI (11),Epimetheus,58.3±3.1,"151,410",0.694,1966,Walker; Voyager 1 (confirmed),Inner moon (co-orbital),[15][16]
,Saturn,XII (12),Helene,16±4,"377,420",2.737,1980,"Laques, Lecacheux",Main-group trojan,[15][16]
,Saturn,XIII (13),Telesto,12±3,"294,710",1.888,1980,"Smith, Reitsema, Larson, Fountain (Voyager 1)",Main-group trojan,[15][16]
,Saturn,XIV (14),Calypso,9.5±1.5,"294,710",1.888,1980,"Pascu, Seidelmann, Baum, Currie",Main-group trojan,[15][16]
,Saturn,XV (15),Atlas,15.3±1.2,"137,670",0.602,1980,Terrile (Voyager 1),Inner moon (shepherd),[15][16]
,Saturn,XVI (16),Prometheus,46.8±5.6,"139,380",0.613,1980,Collins (Voyager 1),Inner moon (shepherd),[15][16]
,Saturn,XVII (17),Pandora,40.6±4.5,"141,720",0.629,1980,Collins (Voyager 1),Inner moon (shepherd),[15][16]
,Saturn,XVIII (18),Pan,12.8,"133,580",0.575,1990,Showalter (Voyager 2),Inner moon (shepherd),[15][16]
,Saturn,XIX (19),Ymir,9,"23,140,400","1,315.58 (r)",2000,Gladman,Retrograde irregular (Norse),[15][16]
,Saturn,XX (20),Paaliaq,11,"15,200,000",686.95,2000,Gladman,Prograde irregular (Inuit),[15][16]
,Saturn,XXI (21),Tarvos,7.5,"17,983,000",926.23,2000,"Gladman, Kavelaars",Prograde irregular (Gallic),[15][16]
,Saturn,XXII (22),Ijiraq,6,"11,124,000",451.42,2000,"Gladman, Kavelaars",Prograde irregular (Inuit),[15][16]
,Saturn,XXIII (23),Suttungr,3.5,"19,459,000","1,016.67 (r)",2000,"Gladman, Kavelaars",Retrograde irregular (Norse),[15][16]
,Saturn,XXIV (24),Kiviuq,8,"11,110,000",449.22,2000,Gladman,Prograde irregular (Inuit),[15][16]
,Saturn,XXV (25),Mundilfari,3.5,"18,628,000",952.77 (r),2000,"Gladman, Kavelaars",Retrograde irregular (Norse),[15][16]
,Saturn,XXVI (26),Albiorix,16,"16,182,000",783.45,2000,"Holman, Spahr",Prograde irregular (Gallic),[15][16]
,Saturn,XXVII (27),Skathi,4,"15,540,000",728.20 (r),2000,"Gladman, Kavelaars",Retrograde irregular (Norse),[15][16]
,Saturn,XXVIII (28),Erriapus,5,"17,343,000",871.19,2000,"Gladman, Kavelaars",Prograde irregular (Gallic),[15][16]
,Saturn,XXIX (29),Siarnaq,20,"18,015,400",896.44,2000,"Gladman, Kavelaars",Prograde irregular (Inuit),[15][16]
,Saturn,XXX (30),Thrymr,3.5,"20,314,000","1,094.11 (r)",2000,"Gladman, Kavelaars",Retrograde irregular (Norse),[15][16]
,Saturn,XXXI (31),Narvi,3.5,"19,007,000","1,003.86 (r)",2003,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Norse),[15][16]
,Saturn,XXXII (32),Methone,1.6,"194,440",1.010,2004,"Porco, Charnoz, Brahic, Dones (Cassini–Huygens)",Alkyonide moon,[16]
,Saturn,XXXIII (33),Pallene,2,"212,280",1.154,2004,"Gordon, Murray, Beurle, et al. (Cassini–Huygens)",Alkyonide moon,[16]
,Saturn,XXXIV (34),Polydeuces,1.25,"377,200",2.737,2004,Porco et al. (Cassini–Huygens),Main-group trojan,[16]
,Saturn,XXXV (35),Daphnis,3.8±0.8,"136,500",0.594,2005,Porco et al. (Cassini–Huygens),Inner moon (shepherd),[16]
,Saturn,XXXVI (36),Aegir,3,"20,751,000","1,117.52 (r)",2004,"Sheppard, Jewitt, Kleyna, Marsden",Retrograde irregular (Norse),[15][16]
,Saturn,XXXVII (37),Bebhionn,3,"17,119,000",834.84,2004,"Sheppard, Jewitt, Kleyna, Marsden",Prograde irregular (Gallic),[15][16]
,Saturn,XXXVIII (38),Bergelmir,3,"19,336,000","1,005.74 (r)",2004,"Sheppard, Jewitt, Kleyna, Marsden",Retrograde irregular (Norse),[15][16]
,Saturn,XXXIX (39),Bestla,3.5,"20,192,000","1,088.72 (r)",2004,"Sheppard, Jewitt, Kleyna, Marsden",Retrograde irregular (Norse),[15][16]
,Saturn,XL (40),Farbauti,2.5,"20,377,000","1,085.55 (r)",2004,"Sheppard, Jewitt, Kleyna, Marsden",Retrograde irregular (Norse),[15][16]
,Saturn,XLI (41),Fenrir,2,"22,454,000","1,260.35 (r)",2004,"Sheppard, Jewitt, Kleyna, Marsden",Retrograde irregular (Norse),[15][16]
,Saturn,XLII (42),Fornjot,3,"25,146,000","1,494.2 (r)",2004,"Sheppard, Jewitt, Kleyna, Marsden",Retrograde irregular (Norse),[15][16]
,Saturn,XLIII (43),Hati,3,"19,846,000","1,038.61 (r)",2004,"Sheppard, Jewitt, Kleyna, Marsden",Retrograde irregular (Norse),[15][16]
,Saturn,XLIV (44),Hyrrokkin,4,"18,437,000",931.86 (r),2004,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Norse),[16]
,Saturn,XLV (45),Kari,3.5,"22,089,000","1,230.97 (r)",2006,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Norse),[16]
,Saturn,XLVI (46),Loge,3,"23,058,000","1,311.36 (r)",2006,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Norse),[16]
,Saturn,XLVII (47),Skoll,3,"17,665,000",878.29 (r),2006,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Norse),[16]
,Saturn,XLVIII (48),Surtur,3,"22,704,000","1,297.36 (r)",2006,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Norse),[16]
,Saturn,XLIX (49),Anthe,1,"197,700",1.0365,2007,Porco et al. (Cassini–Huygens),Alkyonide moon,[36]
,Saturn,L (50),Jarnsaxa,3,"18,811,000",964.74 (r),2006,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Norse),[16]
,Saturn,LI (51),Greip,3,"18,206,000",921.19 (r),2006,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Norse),[16]
,Saturn,LII (52),Tarqeq,3.5,"18,009,000",887.48,2007,"Sheppard, Jewitt, Kleyna",Prograde irregular (Inuit),[16]
,Saturn,LIII (53),Aegaeon,0.33,"167,500",0.808,2008,Cassini Imaging Science Team Cassini–Huygens,G-ring moonlet,[37][38]
,Saturn,—,S/2004 S 7,3,"20,999,000","1,140.24 (r)",2004,"Sheppard, Jewitt, Kleyna, Marsden",Retrograde irregular (Norse?),[15][16]
,Saturn,—,S/2004 S 12,2.5,"19,878,000","1,046.19 (r)",2004,"Sheppard, Jewitt, Kleyna, Marsden",Retrograde irregular (Norse?),[15][16]
,Saturn,—,S/2004 S 13,3,"18,404,000",933.48 (r),2004,"Sheppard, Jewitt, Kleyna, Marsden",Retrograde irregular (Norse?),[15][16]
,Saturn,—,S/2004 S 17,2,"19,447,000","1,014.70 (r)",2004,"Sheppard, Jewitt, Kleyna, Marsden",Retrograde irregular (Norse?),[15][16]
,Saturn,—,S/2006 S 1,3,"18,790,000",963.37 (r),2006,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Norse?),[16]
,Saturn,—,S/2006 S 3,3,"22,096,000","1,227.21 (r)",2006,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Norse?),[16]
,Saturn,—,S/2007 S 2,3,"16,725,000",808.08 (r),2007,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Norse?),[16]
,Saturn,—,S/2007 S 3,3,"18,975,000",977.8 (r),2007,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Norse?),[16]
,Saturn,—,S/2009 S 1,0.15,"117,000",0.471,2009,Cassini Imaging Science Team Cassini–Huygens,B-ring moonlet,[39]
,Saturn,—,S/2004 S 20,3,"19,418,000","1,010.55 (r)",2019,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Norse?),[40]
,Saturn,—,S/2004 S 21,3,"22,645,000","1,272.61 (r)",2019,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Norse?),[41]
,Saturn,—,S/2004 S 22,3,"20,636,000","1,107.13 (r)",2019,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Norse?),[42]
,Saturn,—,S/2004 S 23,4,"21,163,000","1,149.82 (r)",2019,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Norse?),[43]
,Saturn,—,S/2004 S 24,3,"22,901,000","1,294.25",2019,"Sheppard, Jewitt, Kleyna, Marsden","Prograde irregular (group unknown, possibly Gallic?)",[44]
,Saturn,—,S/2004 S 25,4,"21,174,000","1,150.69 (r)",2019,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Norse?),[45]
,Saturn,—,S/2004 S 26,4,"26,676,000","1,627.18 (r)",2019,"Sheppard, Jewitt, Kleyna, Marsden",Retrograde irregular (Norse?),[46]
,Saturn,—,S/2004 S 27,6,"19,976,000","1,054.45 (r)",2019,"Sheppard, Jewitt, Kleyna, Marsden, Jacobson",Retrograde irregular (Norse?),[47]
,Saturn,—,S/2004 S 28,4,"22,020,000","1,220.31 (r)",2019,"Sheppard, Jewitt, Kleyna, Marsden",Retrograde irregular (Norse?),[48]
,Saturn,—,S/2004 S 29,4,"16,981,000",826.44,2019,"Sheppard, Jewitt, Kleyna, Marsden",Prograde irregular (Inuit),[49]
,Saturn,—,S/2004 S 30,3,"20,396,000","1,087.84 (r)",2019,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Norse?),[50]
,Saturn,—,S/2004 S 31,4,"17,568,000",869.65,2019,"Sheppard, Jewitt, Kleyna, Marsden",Prograde irregular (Inuit),[51]
,Saturn,—,S/2004 S 32,4,"21,214,000","1,153.96 (r)",2019,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Norse?),[52]
,Saturn,—,S/2004 S 33,4,"24,168,000","1,403.18 (r)",2019,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Norse?),[53]
,Saturn,—,S/2004 S 34,3,"24,299,000","1,414.59 (r)",2019,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Norse?),[54]
,Saturn,—,S/2004 S 35,6,"22,412,000","1,253.08 (r)",2019,"Sheppard, Jewitt, Kleyna, Marsden",Retrograde irregular (Norse?),[55]
,Saturn,—,S/2004 S 36,3,"23,192,000","1,319.07 (r)",2019,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Norse?),[56]
,Saturn,—,S/2004 S 37,4,"15,892,000",748.18 (r),2019,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Norse?),[57]
,Saturn,—,S/2004 S 38,4,"21,908,000","1,211.02 (r)",2019,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Norse?),[58]
,Saturn,—,S/2004 S 39,3,"23,575,000","1,351.83 (r)",2019,"Sheppard, Jewitt, Kleyna",Retrograde irregular (Norse?),[59]
,Uranus,I (1),Ariel,578.9±0.6,"190,900",2.520,1851,Lassell,Main-group moon,[15][16]
,Uranus,II (2),Umbriel,584.7±2.8,"266,000",4.144,1851,Lassell,Main-group moon,[15][16]
,Uranus,III (3),Titania,788.9±1.8,"436,300",8.706,1787,Herschel,Main-group moon,[15][16]
,Uranus,IV (4),Oberon,761.4±2.6,"583,500",13.46,1787,Herschel,Main-group moon,[15][16]
,Uranus,V (5),Miranda,235.8±0.7,"129,900",1.413,1948,Kuiper,Main-group moon,[15][16]
,Uranus,VI (6),Cordelia,20.1±3,"49,800",0.335,1986,Terrile (Voyager 2),Inner moon (shepherd),[15][16]
,Uranus,VII (7),Ophelia,21.4±4,"53,800",0.376,1986,Terrile (Voyager 2),Inner moon (shepherd),[15][16]
,Uranus,VIII (8),Bianca,25.7±2,"59,200",0.435,1986,Smith (Voyager 2),Inner moon,[15][16]
,Uranus,IX (9),Cressida,39.8±2,"61,800",0.464,1986,Synnott (Voyager 2),Inner moon,[15][16]
,Uranus,X (10),Desdemona,32±4,"62,700",0.474,1986,Synnott (Voyager 2),Inner moon,[15][16]
,Uranus,XI (11),Juliet,46.8±4,"64,400",0.493,1986,Synnott (Voyager 2),Inner moon,[15][16]
,Uranus,XII (12),Portia,67.6±4.0,"66,100",0.513,1986,Synnott (Voyager 2),Inner moon,[15][16]
,Uranus,XIII (13),Rosalind,36±6,"69,900",0.558,1986,Synnott (Voyager 2),Inner moon,[15][16]
,Uranus,XIV (14),Belinda,40.3±8,"75,300",0.624,1986,Synnott (Voyager 2),Inner moon,[15][16]
,Uranus,XV (15),Puck,81±2,"86,000",0.762,1985,Synnott (Voyager 2),Inner moon,[15][16]
,Uranus,XVI (16),Caliban,21,"7,231,100",579.73 (r),1997,"Gladman, Nicholson, Burns, Kavelaars",Retrograde irregular,[60][16]
,Uranus,XVII (17),Sycorax,78.5,"12,179,400","1,288.38 (r)",1997,"Gladman, Nicholson, Burns, Kavelaars",Retrograde irregular,[60][16]
,Uranus,XVIII (18),Prospero,25,"16,256,000","1,978.29 (r)",1999,"Gladman, Holman, Kavelaars, Petit, Scholl",Retrograde irregular,[15][16]
,Uranus,XIX (19),Setebos,24,"17,418,000","2,225.21 (r)",1999,"Gladman, Holman, Kavelaars, Petit, Scholl",Retrograde irregular,[15][16]
,Uranus,XX (20),Stephano,10,"8,004,000",677.36 (r),1999,"Gladman, Holman, Kavelaars, Petit, Scholl",Retrograde irregular,[15][16]
,Uranus,XXI (21),Trinculo,9,"8,504,000",749.24 (r),2001,"Holman, Kavelaars, Milisavljevic",Retrograde irregular,[15][16]
,Uranus,XXII (22),Francisco,6,"4,276,000",266.56 (r),2001,"Holman, Kavelaars, Milisavljevic, Gladman",Retrograde irregular,[15][16]
,Uranus,XXIII (23),Margaret,5.5,"14,345,000","1,687.01",2003,"Sheppard, Jewitt",Prograde irregular,[15][16]
,Uranus,XXIV (24),Ferdinand,6,"20,901,000","2,887.21 (r)",2001,"Holman, Kavelaars, Milisavljevic, et al.",Retrograde irregular,[15][16]
,Uranus,XXV (25),Perdita,15,"76,417",0.638,1999,Karkoschka (Voyager 2),Inner moon,[16]
,Uranus,XXVI (26),Mab,6,"97,736",0.923,2003,"Showalter, Lissauer",Inner moon,[16]
,Uranus,XXVII (27),Cupid,9,"74,392",0.613,2003,"Showalter, Lissauer",Inner moon,[16]
,Neptune,I (1),Triton,"1,353.4±0.9","354,800",5.877 (r),1846,Lassell,Retrograde irregular,[15][16]
,Neptune,II (2),Nereid,178.5±6.5,"5,513,820",360.14,1949,Kuiper,Prograde irregular,[61][16]
,Neptune,III (3),Naiad,33±3,"48,224",0.294,1989,Terrile (Voyager 2),Inner moon,[15][16]
,Neptune,IV (4),Thalassa,41±3,"50,075",0.311,1989,Terrile (Voyager 2),Inner moon,[15][16]
,Neptune,V (5),Despina,75±3,"52,526",0.335,1989,Synnott (Voyager 2),Inner moon,[15][16]
,Neptune,VI (6),Galatea,88±4,"61,953",0.429,1989,Synnott (Voyager 2),Inner moon,[15][16]
,Neptune,VII (7),Larissa,97±3,"73,548",0.555,1982,"Reitsema, Hubbard, Lebofsky, Tholen (Voyager 2)",Inner moon,[15][16]
,Neptune,VIII (8),Proteus,210±7,"117,647",1.122,1989,Synnott (Voyager 2),Inner moon,[15][16]
,Neptune,IX (9),Halimede,31,"15,728,000","1,879.71 (r)",2002,"Holman, Kavelaars, Grav, Fraser, Milisavljevic",Retrograde irregular,[15][16]
,Neptune,X (10),Psamathe,20,"46,695,000","9,115.91 (r)",2003,"Jewitt, Kleyna, Sheppard, Holman, Kavelaars",Retrograde irregular,[15][16]
,Neptune,XI (11),Sao,22,"22,422,000","2,914.07",2002,"Holman, Kavelaars, Grav, Fraser, Milisavljevic",Prograde irregular,[15][16]
,Neptune,XII (12),Laomedeia,21,"23,571,000","3,167.85",2002,"Holman, Kavelaars, Grav, Fraser, Milisavljevic",Prograde irregular,[15][16]
,Neptune,XIII (13),Neso,30,"48,387,000","9,373.99 (r)",2002,"Holman, Kavelaars, Grav, Fraser, Milisavljevic",Retrograde irregular,[15][16]
,Neptune,XIV (14),Hippocamp,17.4,"105,283",0.9362,2013,Showalter et al.,Inner moon,[62]
,Orcus,I (1),Vanth,221±5,"9,000±9",9.539,2005,Brown & Suer,Synchronous rotation,[63]
,Pluto,I (1),Charon,606±0.5,"19,591",6.387,1978,Christy,Synchronous rotation,[15][16]
,Pluto,II (2),Nix,19.3,"48,671",24.85,2005,"Weaver, Stern, Buie, et al.",Chaotic rotation,[15][16]
,Pluto,III (3),Hydra,19.5,"64,698",38.20,2005,"Weaver, Stern, Buie, et al.",Chaotic rotation,[15][16]
,Pluto,IV (4),Kerberos,6.3,"57,729",32.17,2011,Showalter (Hubble),Chaotic rotation,[15][16][64][65]
,Pluto,V (5),Styx,5.5,"42,393",20.16,2012,Showalter (Hubble),Chaotic rotation,[15][16][66]
,Salacia,I (1),Actaea,142±5,"5,724±27",5.494,2006,Noll et al.,,[63]
,Haumea,I (1),Hiʻiaka,~160,"49,880",49.12,2005,Brown et al.,,[10][67][68]
,Haumea,II (2),Namaka,~85,"25,657",18.2783,2005,Brown et al.,,[10][67][68]
,Quaoar,I (1),Weywot,~85,"14,500±800",12.438,2007,Brown,,[69]
,Makemake,—,S/2015 (136472) 1,~87.5,"21,000",>12.4,2016,Parker et al.,,[70][71]
,Varda,I (1),Ilmarë,163±18[72],"4,809±39",5.751,2009,Noll et al.,,[73]
,Gonggong,I (1),Xiangliu,50,"24,020±200",25.221,2010,"Marton, Kiss & Müller",assuming a prograde orbit,[74]
,Eris,I (1),Dysnomia,350±60[8],"37,370±150",15.774,2005,"Brown, Rabinowitz, Trujillo et al.",SDO moon,[75][76][77]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment