700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 深空天体反差指数计算

深空天体反差指数计算

时间:2023-02-06 01:05:54

相关推荐

深空天体反差指数计算

反差指数计算

运行计算反差指数.py输出结果

数据源:NI反差指数源.csv

NI反差指数源.csv数据格式:

目标,bmag,vmag,lx(长轴/arcmin),ly(短轴/arcmin)

import math# 修正issue与公式来源# /Stellarium/stellarium/issues/1145# 根据你的环境设置NELM:# ! Class 1 = NELM 7.6-8.0; average NELM is 7.8# ! Class 2 = NELM 7.1-7.5; average NELM is 7.3# ! Class 3 = NELM 6.6-7.0; average NELM is 6.8# ! Class 4 = NELM 6.1-6.5; average NELM is 6.3# ! Class 5 = NELM 5.6-6.0; average NELM is 5.8# ! Class 6 = NELM 5.1-5.5; average NELM is 5.3# ! Class 7 = NELM 4.6-5.0; average NELM is 4.8# ! Class 8 = NELM 4.1-4.5; average NELM is 4.3# ! Class 9 = NELM 4.0# ! @arg idx Bortle Scale Index (valid: 1..9, will be forced to valid range)NELM = 7.3# 输入:深空天体的星等、长轴与短轴(arcsec)# 输出:深空天体的反差指数def calContrastIndex(mag, majorAxisSize, minorAxisSize):# // Compute an extended object's contrast index: /projects/darksky/NELM2BCalc.html# // Sky brightness# // Source: Schaefer, B.E. Feb. 1990. Telescopic Limiting Magnitude. PASP 102:212-229# // URL: http://adsbit.harvard.edu/cgi-bin/nph-iarticle_query?bibcode=1990PASP..102..212S [1990PASP..102..212S]def getSurfaceBrightnessWithExtinction(mag, majorAxisSize, minorAxisSize):sq = 3600 * 3600# arcsec^2 or arcmin^2if minorAxisSize == 0:SurfaceArea = math.pi * (majorAxisSize / 2) * (majorAxisSize / 2) # S = pi*R^2 = pi*(D/2)^2else:SurfaceArea = math.pi * (majorAxisSize / 2) * (minorAxisSize / 2) # S = pi*a*bif mag < 99 and majorAxisSize > 0:return mag + 2.5 * math.log10(SurfaceArea * sq)else:return 99B_mpsas = 21.58 - 5 * math.log10(math.pow(10, 1.586 - NELM * 0.2) - 1)# // Compute an extended object's contrast index#// Source: Clark, R.N., 1990. Appendix E in Visual Astronomy of the Deep Sky, Cambridge University Press and Sky Publishing.#// URL: /visastro/appendix-e.htmlreturn -0.4 * (getSurfaceBrightnessWithExtinction(mag,majorAxisSize,minorAxisSize) - B_mpsas)import csvdef csvload(src,srccoding='utf-8',dem=','):dic = {}f = open(src, "r", encoding=srccoding)reader = csv.reader(f,delimiter=dem)return list(reader)lines = csvload("NI反差指数源.csv")for it in lines:if float(it[1]) != 99 or float(it[2]) != 99:if float(it[3]) != 0 or float(it[4]) != 0:mag = float(it[2])if float(it[2]) == 99:mag = float(it[1])lmax = float(it[3])lmin = float(it[3])if float(it[4]) != 0:lmin = float(it[4])print(it[0],'反差指数',calContrastIndex(mag,lmax/60,lmin/60))

ref:Stellarium@github

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。