2025-12-08 15:12:52 -05:00

200 lines
8.0 KiB
HTML

{% extends 'layout.html' %}
{% load humanize %}
{% load static %}
{% block title%}Comprehensive Asteroid and Comet Database | Space Reference{% endblock %}
{% block scripts %}
<script src="{% static "js/lib/three.r98.min.js" %}"></script>
<script src="{% static "js/lib/TrackballControls.js" %}"></script>
<script src="{% static "js/lib/spacekit.js" %}"></script>
<!--
<script src="http://localhost:8001/src/lib/three.r98.min.js"></script>
<script src="http://localhost:8001/src/lib/TrackballControls.js"></script>
<script src="http://localhost:8001/build/spacekit.js"></script>
-->
<script>
window.OBJECT_DEFINITIONS= [
{% for object_set in object_sets %}
{% for object in object_set.data %}
{
name: unescape("{{object.name}}"),
slug: "{{object.slug}}",
ephem: {
a: {{object.a}},
e: {{object.e}},
i: {{object.i}},
om: {{object.om}},
w: {{object.w}},
ma: {{object.ma}},
epoch: {{object.epoch}}
}
},
{% endfor %}
{% endfor %}
];
window.VIZ_SIMULATION_OPTS = {
jdPerSecond: 2,
};
window.VIZ_OBJECT_OPTS = {
particleSize: 10,
};
function selectOrbit(domElement) {
Object.keys(window.spaceobjects).forEach(function(key) {
const ob = window.spaceobjects[key];
const obOrbit = ob.getOrbit();
if (key === domElement.dataset.slug) {
obOrbit.setVisibility(true);
obOrbit.setHexColor(0xff0000);
ob.setLabelVisibility(true);
} else {
obOrbit.setVisibility(false);
ob.setLabelVisibility(false);
}
});
}
function deselectOrbit(domElement) {
window.spaceobjects[domElement.dataset.slug].getOrbit().setHexColor(0xffffff);
}
</script>
<script src="{% static "js/main.js" %}"></script>
<script>
init3dVis();
Object.keys(window.spaceobjects).forEach(function(key) {
// TODO(ian): Until there is a better way to lazily create labels and orbits,
// we have to create them and then hide them...
const ob = window.spaceobjects[key];
ob.setLabelVisibility(false);
ob.getOrbit().setVisibility(false);
});
</script>
{% endblock %}
{% block header %}
<header class="site-header">
<div class="container">
<div class="row">
<h1 class="mainheading">Space Reference</h1>
<h4 class="subheading">Compiled data &amp; simulations for {{object_count|intcomma}} celestial objects</h4>
</div>
</div>
</header>
{% endblock %}
{% block content %}
<div class="row">
<div class="item-container col-sm-8">
<div class="item-container__inner">
<p>
Welcome to SpaceReference.org. The purpose of this site is to catalog and showcase every known object in space. We've started with asteroids and comets but this <a href="https://www.github.com/judymou/spacedb">open-source</a> project is being quickly expanded.
</p>
<p>
SpaceDB compiles data from the NASA/JPL Small Body Database, the IAU Minor Planet Center, and the NASA/JPL Center for Near Earth Object Studies.
</p>
<p>
If you'd like to create a customized solar system model, take a look at the full-screen interactive <a href="/solar-system">solar system</a> view.
</p>
</div>
</div>
<div class="item-container item-container__rightside col-sm-4">
<div class="item-container__inner">
<div class="react-search"></div>
&nbsp;&nbsp; or view a <a rel="nofollow" href="/asteroid/random">random</a> object
</div>
</div>
</div>
<div class="row">
<div class="item-container">
<h2>Asteroids and Comets</h2>
<p>
We've organized hundreds of thousands celestial objects into these categories below for your perusal.
</p>
<div class="sticky vis-container vis-container__home"></div>
<p>
Mouseover objects in the lists below to highlight them in the orbit view. Click or tap to learn more about each object.
</p>
{% for object_set in object_sets %}
<div class="vis-selector" data-showvis="{{object_set.name}}">
<h3>{{object_set.name}}</h3>
<p>
{{object_set.description}} <!--<a href="/solar-system#cat={{object_set.category}}">See all</a>-->
</p>
<div class="carousel-flex-container">
<div class="carousel-flex-inner">
{% for object in object_set.data %}
<div class="tile carousel-item" data-slug="{{object.slug}}" onmouseover="if (typeof selectOrbit !== 'undefined') selectOrbit(this)"
onmouseout="if (typeof deselectOrbit !== 'undefined') deselectOrbit(this)">
<a href="{{object.get_absolute_url}}">
<div>
<h5>{{object.name}}</h5>
<div class="tile-content">
<span class="label label-default">{{object.size_adjective|title}}</span>
{% if object.is_nea %}
<span class="label label-info">Near-Earth</span>
{% endif %}
{% if object.future_close_approaches|length %}
<span class="label label-warning">Close Approach</span>
{% endif %}
{% if object.is_pha %}
<span class="label label-danger">Potentially Hazardous</span>
{% endif %}
<br>
<div class="tile-desc">
{{object.shorthand}} orbits the sun every {{object.period_in_years|floatformat:2|intcomma}} years and is about {{object.get_diameter_estimate|floatformat:3}} km in diameter, comparable in size to {{object.get_diameter_comparison}}.
{% if object.ordered_sentry_events|length and not object_set.hide_impact_probability %}
{% with object.ordered_sentry_events.0 as event %}
<em>It will pass near Earth with an impact probability of {{event.prob_percentage|floatformat:3}}% in {{event.date | date:"Y"}}.</em>
{% endwith %}
{% elif object.future_close_approaches|length %}
{% with object.future_close_approaches.0 as event %}
<em>It will pass by Earth on {{event.date | date}}.</em>
{% endwith %}
{% endif %}
</div>
</div>
</div>
</a>
</div>
{% endfor %}
</div>
</div>
</div>
{% endfor %}
</div> <!-- end item-container -->
</div> <!-- end row -->
<div class="row">
<div class="item-container">
<div class="item-container__inner">
<h2>Object Classifications</h2>
The two most noteworthy classifications for asteroids are "Near Earth Asteroid" (NEA) and "Potentially Hazardous Asteroid" (PHA). Despite the names, neither classification indicates any direct danger to Earth.
<ul>
<li><a href="/category/near-earth-asteroids">Near Earth Asteroids</a> - asteroids whose orbit perihelion is less than 1.3 AU</li>
<li><a href="/category/potentially-hazardous-asteroids">Potentially Hazardous Asteroids</a> - near-Earth asteroids whose orbits passes within 0.05 AU of Earth's and whose absolute magnitude H is 22.0 or brighter</li>
</ul>
Learn more about various <a href="https://cneos.jpl.nasa.gov/about/neo_groups.html">NEO groups</a> here.
</div>
</div>
</div>
<div class="row">
<div class="item-container">
<div class="item-container__inner">
<h2>Categories</h2>
<ul>
<li><a href="/category/asteroid-shapes">Asteroids with known shapes</a> - these asteroids have been mapped by light curve inversion, radar, or flybys. Click through to see 3D models.</li>
</ul>
<p>
The categories below are orbital classifications as defined by <a href="https://pdssbn.astro.umd.edu/data_other/objclass.shtml">NASA PDS</a>:
</p>
<ul>
{% for orbit_class in orbit_classes %}
<li><a href="/category/{{orbit_class.slug}}">{{orbit_class.name}}</a> - {{orbit_class.desc}}</li>
{% endfor %}
</ul>
</div>
</div>
</div>
{% endblock %}