- 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
- 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
- 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
[天文学]DE405_DE406星历表算法.doc
DE405/406星歷表算法?? Post By:2009-2-5 20:43:00
#pragma hdrstop
#pragma argsused //有入口參數的此行不能少
#include stdio.h
#include stdlib.h#include conio.h#include sxwnl_eph.cpp
/*===========================================================
????????????????? [ DE星歷表計算程序 ]
?????????? 實際測試過DE405及DE406,? xjw01@莆田十中 2009.2
·本程序在C++Builder6.0中編譯通過
? 如果VC6.0編譯,請加上 #include stdafx.h 即可。但在在VC中,
? 本程序的讀寫速度降低數倍。
·程序的功能:
? 1.把DE星歷表的文本星歷庫轉為二進制格式
? 2.進行星歷計算測試並給出實現算法
? ·本程序根據JPL網站提供的DE星歷表CD盤資料嚴格計算星歷,與幾萬個標準? 數據比較,誤差小於10^-13
·JPL網站上提供的DE星歷表分為兩部分:
? header.xxx頭文件以及插值數據庫,可以在以下地址下載
? HYPERLINK /pub/eph/planets/ascii/ \t _blank /pub/eph/planets/ascii/? 該ftp中還提供了插值計算程序,有c、fortran、java等版,其中c程序無? 法在window下編譯通過。fortran等版與其提供的頭文件也不匹配,也無? 法調試成功。他們所提供的exe測試文件也無法在window平台下運行,所? 以編寫些程序解決這些問題.
·插值係數數據庫(以下簡稱數據庫)由多個txt文件組成,每個文件覆蓋一? 定的時間範圍.如ascm1900.406數據庫適用於BC1900到BC1800年,? ascp1900.406適用範圍是1900到2000年。不同版本的DE星歷表,各數據? 庫適用的範圍不一定相同,還須根據數據庫內部的數據進行分析。
·同一版本的數據庫可以使用copy命令連起來,合併為一個數據庫,如:? copy ascm0100.406+ascp0000.406+ascp0100.406+ascp0200 data.406? 但應注意,應根據時間的前後關係按順序連接。如果使把ascm0100.406與? ascp0100.406直接連接起來,中間就出現了100年的斷裂,將造本程序將識? 別成功。
·每個數據庫中由若干個數據塊構成,各數據塊按時間順序連接。不過使用? copy命令連接後,在兩個文的連接處有一個重複數據塊,讀取時應跳過連接? 處的重複塊。各數塊適用的時間範圍一般只有幾十天,如DE405每個數據? 塊均為32天。同一版本的星歷表,所有數據塊的時間長度是相同的。一個? 數據塊中含有太陽系各個天體坐標的插值係數。不同版本包含的天體個數? 不一定全部相同。
·各天體插值係數在數據塊中的索引位置由頭文件定義。文件結構詳見JPL? 星歷表文件結構示意圖
·插值算法採用切比雪夫多項式插值
·本程序生成的二進制文件與JPL官方定義的不太相同。其數據結構是原先? fortran的,用c語言生成相同格式的文件十分煩麻,所以本程序放棄官方? 定義的格式標準而自行定義數據結構,這使程序變得很短,實現相同的功? 能,代碼量不到500行,比官方推薦的數千行c代碼精簡5倍以上。另一方? 面,官方程序也表明,其c程序不一定能夠在window下運行(實際上根本沒? 有調試過),所以自行定義數據結構是一種較好的選擇。
===========================================================*/
void ascii2bin(char* headName,char* dataName,char* outName,double startjd,double stopjd){ //頭文件名,數據文件名,輸出文件,起止JD?if (stopjdstartjd){ printf(错误:终JD小于始JD); exit(0); }?FILE *fp1, *fp2, *fp3;?if((fp3=fopen(outName,r)) != NULL) {?? fclose(fp3);?? printf(目標文件 %s 已存在,是否覆蓋?y/n\n, outName);?? if (getch()!=y) exit(0);?}?if((fp1=fopen(headName,r))==NULL
您可能关注的文档
- XX电信7750BRAS业务实现配置-SROS9.0模板.doc
- XX饭店前厅部操作规程(129P).doc
- XX高级酒店管理实务之-经营管理部管理实务(DOC 74页).doc
- XYXXC-3000台式连续式洗菜机和CQX-400型手工蔬菜气泡清洗机价格.docx
- XZ-680A多功能切菜机和多功能切肉机价格.docx
- X射线衍射作业.doc
- yangqiang.doc
- YB-500牛肉酱炒锅和H20F立式双速双动和面面包机价格.docx
- yf--第2章.doc
- YG2.02.09救助基金管理办法.doc
- [套卷]广东省珠海一中等六校2014届高三上学期第二次联考地理试题 Word版含答案.doc
- [套卷]江苏省淮安市涟水中学2014届高三上学期第一次月考化学试题.doc
- [小木虫emuch.net]高分子物理(何曼君版)复旦大学出版社_课后习题答案.doc
- [彭]Fiber3-2光缆.doc
- [成套]八年级上册政治复习总提纲人教版全!新人教.doc
- [我爱下饭菜]蒜蓉拌饭酱炒花肉----香得连煮妇都咽口水.docx
- [我爱厨房]巧用微波菜做美味大餐.doc
- [摄影跟我学]三步教你抓住闪电的尾巴.docx
- [教程]_如何从GOOGLE_BOOK下载图书_并装订成PDF.doc
- [新人教版]2012中考数学二轮复习13_分式方程.doc
文档评论(0)