Cislunar Space Beginner's GuideCislunar Space Beginner's Guide
  • Satellite Orbit Simulation
  • Historical Inquiry
Cislunar Glossary
Resources & Tools
Space News
AI Q&A
Forum
Home
Gitee
GitHub
  • 简体中文
  • English
  • Satellite Orbit Simulation
  • Historical Inquiry
Cislunar Glossary
Resources & Tools
Space News
AI Q&A
Forum
Home
Gitee
GitHub
  • 简体中文
  • English
  • Site map

    • Home (overview)
    • Intro · what is cislunar space
    • Orbits · spacecraft trajectories
    • Frontiers · directions & labs
    • Glossary · terms & definitions
    • Tools · data & code
    • News · space industry archive
  • Resources & Tools (Data, Code & Datasets)

    • Resources & Tools
    • Simulation Software

      • /en/resources-tools/gmat/
      • /en/resources-tools/stk/
      • /en/resources-tools/atk/
      • /en/resources-tools/cesium/
    • Core Algorithm Libraries

      • e2m2e - Cislunar Space Orbit Design Library
      • scipy - Python Scientific Computing Library
      • r2s2 - Cislunar Space-Time Coordinate Transformation Library
      • /en/resources-tools/orekit/
      • /en/resources-tools/poliastro/
      • /en/resources-tools/basilisk/
      • /en/resources-tools/pykep/
    • Data Resources

      • Cislunar Space Research Datasets
    • AI & Cloud Platforms

      • /en/resources-tools/digital-lunar/
      • /en/resources-tools/llm/
      • /en/resources-tools/naoc-data/

Dataset Downloads

Author: CislunarSpace

Website: https://cislunarspace.cn

JPL Ephemeris

DE Series Ephemeris Introduction

The JPL Ephemeris (Development Ephemerides) is high-precision planetary and lunar position data published by the Jet Propulsion Laboratory, widely used in deep space exploration missions.

Available Versions

DE405 (Recommended for Earth-Moon Missions)

  • Time Coverage: 1600–2200
  • Accuracy: Lunar position accuracy ~2–5 meters
  • Use Cases: Most cislunar space mission analysis
  • Download Links:
    # Official FTP download
    ftp://ssd.jpl.nasa.gov/pub/eph/planets/ascii/de405/
    
    # Mirror
    https://naif.jpl.nasa.gov/pub/naif/generic_kernels/spk/planets/
    

DE421

  • Time Coverage: 1900–2050
  • Accuracy: Lunar position accuracy ~1 meter
  • Features: Includes more asteroid data
  • Download Links:
    ftp://ssd.jpl.nasa.gov/pub/eph/planets/ascii/de421/
    

DE430 (Latest Version)

  • Time Coverage: 1550–2650
  • Accuracy: Lunar position accuracy ~0.5 meters
  • Features: Includes lunar libration data
  • Download Links:
    ftp://ssd.jpl.nasa.gov/pub/eph/planets/ascii/de430/
    

Data Format Description

ASCII Format

# DE405 header information example
*******************************************************************************
*    Copyright (C) 1991-2005 California Institute of Technology, Pasadena, CA *
*    All rights reserved.                                                     *
*******************************************************************************
*  Start Epoch: JD 2305424.50 (1599 DEC 09)                                  *
*  Final Epoch: JD 2525008.50 (2201 FEB 20)                                  *
*  Interval   : 4.0 days                                                     *
*******************************************************************************

Binary SPK Format

# SPK file download
https://naif.jpl.nasa.gov/pub/naif/generic_kernels/spk/planets/de405.bsp

Usage Examples

Reading DE Ephemeris with Python

import numpy as np
from astropy.time import Time
import jplephem

# Load DE405 ephemeris
eph = jplephem.Ephemeris('de405.bsp')

# Calculate Earth-Moon position
jd = Time('2025-01-01').jd  # Julian Date

# Earth position (relative to Solar System Barycenter)
earth_pos = eph.position('earth', jd)

# Moon position (relative to Earth)
moon_pos = eph.position('moon', jd)

print(f"Earth position: {earth_pos} km")
print(f"Moon position: {moon_pos} km")

Reading DE Ephemeris with MATLAB

% Using MATLAB Aerospace Toolbox
jd = juliandate(datetime(2025,1,1));

% Read planetary positions
[earth_pos, earth_vel] = planetEphemeris(jd, 'Sun', 'Earth', '405');
[moon_pos, moon_vel] = planetEphemeris(jd, 'Earth', 'Moon', '405');

disp(['Earth position: ', num2str(earth_pos), ' km']);
disp(['Moon position: ', num2str(moon_pos), ' km']);

Lunar Gravity Field Models

Model Overview

Lunar gravity field models are used to accurately calculate the lunar gravitational potential, which is crucial for lunar orbit design and maintenance.

Main Models

GRGM Series (GRAIL Mission)

  • GRGM900C: Degree and order 900, spatial resolution ~5.6 km
  • GRGM1200A: Degree and order 1200, spatial resolution ~4.2 km
  • GRGM660PRIM: Degree and order 660, optimized for polar regions

GL Series (Historical Models)

  • GL0660B: Degree and order 660, based on historical data
  • GL0900D: Degree and order 900, combining multiple data sources

SGM Series (Japanese Models)

  • SGM100i: Degree and order 100, based on Kaguya data
  • SGM150i: Degree and order 150, higher precision version

Download Links

NASA PDS Archive

# GRAIL gravity field models
https://pds-geosciences.wustl.edu/grail/grail-l-lgrs-5-gravity-v1/

# Latest models
https://pgda.gsfc.nasa.gov/products/71

ISDC Data Portal

# European data archive
https://ssedata.gsfc.nasa.gov/archive/grail/

Data Format

Spherical Harmonic Coefficient Files

# GRGM900C header example
Product_id           = "GRGM900C"
Model_name           = "GRGM900C"
Maximum_degree       = 900
Maximum_order        = 900
Reference_radius     = 1738000.0
Gm                   = 4902.80007
Background_model     = "LP165P"
Data_span_start      = 2012-03-01
Data_span_end        = 2012-12-31

# Coefficient data
degree order C_nm S_nm sigma_C sigma_S
2      0     -0.000909927 0.0 1.2e-10 0.0
2      1     0.000209148 0.000199979 2.3e-10 2.3e-10
2      2     0.000227744 -0.000259674 1.8e-10 1.8e-10

Usage Examples

Computing Lunar Gravity with Python

import numpy as np
import pyshtools

# Load gravity field model
clm, slm = pyshtools.shio.read_shcoeffs('GRGM900C.gfc')

# Calculate gravitational acceleration at a point
lat = 0.0    # Latitude (degrees)
lon = 0.0    # Longitude (degrees)
r = 1738.0   # Radius (km)

# Calculate gravitational potential
potential = pyshtools.expand.MakeGridPoint(clm, slm, lat, lon, r)

# Calculate gravitational acceleration
g_lat, g_lon, g_r = pyshtools.expand.MakeGradientGridPoint(clm, slm, lat, lon, r)

print(f"Gravitational potential: {potential} m²/s²")
print(f"Gravitational acceleration: [{g_lat}, {g_lon}, {g_r}] m/s²")

Space Environment Parameters

Solar Radiation Data

Solar Constant

  • Average: 1361 W/m²
  • Variation Range: ±0.1%
  • Data Sources: SORCE/TIM, TSIS-1

Download Links

# NASA Solar Radiation Data
https://lasp.colorado.edu/lisird/data/

# Historical Data
https://www.ncei.noaa.gov/products/climate-data-records/solar-irradiance

Geomagnetic Field Models

IGRF Model

  • International Geomagnetic Reference Field: Updated every 5 years
  • Degree: 13 (1900–2020)
  • Accuracy: ~50 nT

WMM Model

  • World Magnetic Model: Updated every 5 years
  • Coverage: Global
  • Accuracy: Better than 100 nT

Download Links

# IGRF Model
https://www.ngdc.noaa.gov/IAGA/vmod/igrf.html

# WMM Model
https://www.ncei.noaa.gov/products/world-magnetic-model

Upper Atmosphere Models

NRLMSISE-00

  • Altitude Coverage: 0–1000 km
  • Parameters: Temperature, density, composition
  • Applicability: Earth orbit missions

JB2008

  • Improved Version: Includes solar activity effects
  • Accuracy: Better than 15%
  • Applicability: Long-term orbit decay prediction

Download Links

# CelesTrak Atmospheric Models
https://celestrak.org/SpaceData/

# NASA Space Weather Data
https://omniweb.gsfc.nasa.gov/

Usage Examples

Computing Atmospheric Density

import numpy as np
from spaceweather import sw_download
import msise00

# Download space weather data
sw_download.download_sw()

# Set parameters
alt = 400  # Altitude (km)
lat = 30   # Latitude (degrees)
lon = 120  # Longitude (degrees)
year = 2025
doy = 1    # Day of year
sec = 0    # Seconds

# Calculate atmospheric density
density = msise00.run(year, doy, sec, alt, lat, lon, 0, 0, 
                      f107=150, f107a=150, ap=4)

print(f"Atmospheric density: {density['Total']} kg/m³")

Data Usage Guide

Data Preprocessing

Format Conversion

# Convert ASCII ephemeris to binary
from jplephem import ascii2bin

ascii2bin.convert('de405.asc', 'de405.bsp')

Data Verification

# Check data integrity
import hashlib

def verify_file(filepath, expected_md5):
    with open(filepath, 'rb') as f:
        file_hash = hashlib.md5(f.read()).hexdigest()
    
    if file_hash == expected_md5:
        print("File verification passed")
        return True
    else:
        print(f"File verification failed: {file_hash} != {expected_md5}")
        return False

Best Practices

Data Management

  1. Version Control: Record the data version used
  2. Backup Strategy: Multiple backups for important data
  3. Metadata Logging: Record data sources and processing steps

Performance Optimization

# Use memory mapping for improved large file reading performance
import numpy as np

# Memory-mapped reading
data = np.memmap('large_data.bin', dtype='float64', mode='r')

FAQ

Handling Missing Data

def handle_missing_data(data, method='interpolate'):
    """
    Handle missing data
    """
    if method == 'interpolate':
        # Linear interpolation
        return np.interp(
            np.arange(len(data)),
            np.where(~np.isnan(data))[0],
            data[~np.isnan(data)]
        )
    elif method == 'forward_fill':
        # Forward fill
        mask = np.isnan(data)
        idx = np.where(~mask, np.arange(len(data)), 0)
        np.maximum.accumulate(idx, out=idx)
        return data[idx]

Data Update Strategy

# Automated update script example
#!/bin/bash
# Weekly update of space weather data
wget -q -O f107.txt https://omniweb.gsfc.nasa.gov/cgi/nx1.cgi
# Process and store data
python process_spaceweather.py f107.txt

Resource Links

Official Data Portals

  • NASA Planetary Data System
  • ESA Science Data Centre
  • JAXA Data Archive

Community Resources

  • Space Data Sharing Platform
  • Astrodynamics Data Exchange
  • Open Science Data Repository

Software Tools

  • SPICE Toolkit
  • HORIZONS System
  • GMAT Data Interface

For more datasets and updates, please follow the latest developments on this site...

Cislunar DRO Satellite Constellation Mission Data

In April 2025, China's CAS Strategic Priority Program "Cislunar Space DRO Exploration Research" achieved a major breakthrough: the DRO-A/B satellites successfully entered orbit and established inter-satellite links with the DRO-L satellite, marking the world's first international DRO-based cislunar three-satellite constellation. Over two years of in-orbit operation, the mission has completed multiple world-first technology demonstrations:

  • World's First DRO Low-Energy Orbit Entry: Validated spacecraft stable station-keeping capability in DRO
  • Low-Energy Maneuver Transfer: New principles of space-based measurement, orbit determination and navigation verified
  • 1.17 Million km K-Band Inter-Satellite Link: Established stable cross-link communication spanning 1.17 million km
  • Complete Lagrange Point Tour: Became the world's first spacecraft to visit all cislunar Lagrange points in a single mission

Related real-flight orbit data, ephemerides and engineering parameters are available through technical reports published by the CAS Center of Space Utilization.

Data Sources

  • CAS Center of Space Utilization: https://www.csu.cas.cn/
  • China Lunar Exploration Program Data: http://www.clep.org.cn/
  • NASA JPL Cislunar Mission Data: https://ssd.jpl.nasa.gov/
Improve this page
Last Updated: 4/29/26, 11:30 AM
Contributors: ouyangjiahong, Hermes Agent, Cron Job
地月空间入门指南
Cislunar Space Beginner's GuideYour guide to cislunar space
View on GitHub

Navigate

  • Home
  • About
  • Space News
  • Glossary

Content

  • Cislunar Orbits
  • Research
  • Resources

English

  • Home
  • About
  • Space News
  • Glossary

Follow Us

© 2026 Cislunar Space Beginner's Guide  |  湘ICP备2026006405号-1
Related:智慧学习助手 UStudy航天任务工具箱 ATK
支持我
鼓励和赞赏我感谢您的支持