使用orekit库计算指定时刻指定地点的太阳高度角和昼夜变化状态
考虑了大气折射模型
首先还是要初始化orekit环境
@Test
public void getSunAltitudeAngle() throws ParseException {
OrekitContext.init("orekit-data");
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SunStatus elevation = AttitudesUtil.getSunStatus(formatter.parse("2023-06-06 12:00:00"), 58.5, 127.3, 83.6);
System.out.println(elevation.getAltitudeAngle());
}
太阳状态封装
@Data
public class SunStatus {
/**
* 太阳高度角
*/
private double altitudeAngle;
/**
* 晨昏状态
*/
private boolean isNight;
public SunStatus(double altitudeAngle, boolean isNight) {
this.altitudeAngle = altitudeAngle;
this.isNight = isNight;
}
}
方法实现
/**
* 计算太阳高度角
*
* @param date 北京时间
* @par

该代码示例展示了如何利用Orekit库初始化环境并计算指定日期、经纬度和海拔的太阳高度角,同时考虑了大气折射效应。通过TopocentricFrame和AtmosphericRefractionModel来获取精确的太阳位置,并判断是否处于夜间。
最低0.47元/天 解锁文章
2085





