orbscjs v3.1.0
ORBSCJS
未完成
- 打包并同时支持 js 与 nodejs
- 新增的两个函数尚未调试
记录
orbelem
/**
* @typedef orbelem
* @prop {number} eptime 时间,秒计数(起点时??)
* @prop {number} period 轨道周期,单位为秒
* @prop {number} eporbt 轨道编号
* @prop {number[]} epelem 6参
*
* @des epelem[0] 轨道元素中的半长轴(semi-major axis),单位为千米
* @des epelem[1] 轨道元素中的偏心率(eccentricity)
* @des epelem[2] 轨道元素中的轨道倾角(inclination),单位为弧度
* @des epelem[3] 轨道元素中的升交点赤经(right ascension of ascending node),单位为弧度
* @des epelem[4] 轨道元素中的轨道偏角(argument of periapsis),单位为弧度
* @des epelem[5] 轨道元素中的真近点角(true anomaly),单位为弧度
*/
orbosele8 瞬时轨道参数
/**
* @des orbosele[8] 瞬时轨道参数
* @des orbosele(1): 轨道半长轴[公里]
* @des orbosele(2): 轨道偏心率
* @des orbosele(3): 轨道倾角[弧度]
* @des orbosele(4): 升交点赤经[弧度]
* @des orbosele(5): 近地点幅角[弧度]
* @des orbosele(6): 平近点角[弧度]
* @des orbosele(7): 卫星轨道向经(从卫星到地心的距离)[公里]
* @des orbosele(8): 真近点角[弧度]
*/
subSatPoint
subSatPoint(tleLine1, tleLine2, time[, pixels])
计算星下点经纬度
参数
tleLine1 (string): 第一行 // 1 99999U 23055A 23148.95833333 .00053924 00000-0 86260-3 0 00006
tleLine2 (string): 第二行 // 2 99999 049.9996 336.6070 0004272 315.4428 328.1689 15.52430075006689
time (Date): 时间 new Date("2017-10-18 00:50:00")
pixels = tPixel: 仪器的水平像素数 // eg. NOAAI9 AVHRR:2048
返回值
(object): 星下点信息
- orbit (number): 轨道号
- lat (number): 星下点纬度
- lon (number): 星下点经度
- height (number): 星下点高度
- adFlg (string): 升降轨标识(A-升,D-降)
- leftLat (number): 最左侧扫描点纬度
- leftLon (number): 最左侧扫描点经度
- rightLat (number): 最右侧扫描点纬度
- rightLon (number): 最右侧扫描点经度
例子
var ORBSC = require("orbscjs");
let testTime = new Date('2023-05-26T05:11:00Z')
const tleLine1 = '1 49008U 21062A 23142.56951089 .00000011 00000+0 25950-4 0 9993'
const tleLine2 = '2 49008 98.7217 144.3655 0002722 84.3641 275.7846 14.19681025 97422'
const orbitInfo = ORBSC.subSatPoint(tleLine1, tleLine2, testTime, 2048)
console.log(`###${i}### ${testTime.toString()}: ${orbitInfo.orbit}, ${orbitInfo.adFlg} Lon: ${orbitInfo.lon}, Lat: ${orbitInfo.lat}, Left: [${orbitInfo.leftLon}, ${orbitInfo.leftLat}], right: [${orbitInfo.rightLon}, ${orbitInfo.rightLat}`)
angleSatPoint
angleSatPoint(time, pointNum, tPixels, stpAng, stpTim, orbelem)
计算从0到扫描角的pointNum
个点为经纬度
参数
time (Date): 时间 new Date("2017-10-18 00:50:00")
pointNum (number): 要计算的点的个数
tPixels (number): 一行象素点总数(仪器属性)
stpAng (number): 两点间的角度(仪器属性)
stpTim (number): 两点间的时间(仪器属性)
orbelem (orbelem): 轨道参数
返回值
(array): 返回逐点的经纬度信息
例子
// NOAAI9 AVHRR 110.8 2048 0.0541 0.000025
// tPixels = 2048, stpAng = 0.0541, stpTim = 0.000025
const ORBSC = require("orbscjs");
// 直接传入轨道根数
const orbelem = {
"epelem": [
7205.1839,
0.001118,
1.7238019999999943,
1.9813819999999987,
0.049575999999990068,
1.116255000000005
],
"eporbt": 1347,
"eptime": 1303344000.0,
"period": 6086.64318
}
const angData = ORBSC.angleSatPoint(new Date("2017-10-18 00:50:00"), 10, 2048, 0.0541, 0.000025, orbelem)
// => [{lat: x, lon: y}, ... ...]
11 months ago
11 months ago
11 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
2 years ago
3 years ago
3 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago