快速创建SkySafari的观测清单(Observing Lists)

本文介绍了一个Python脚本,该脚本使用正则表达式来处理文本文件,将特定格式的数据转换为SkySafari观察列表,并提供了解析PK和PNG格式的额外功能。文章展示了如何读取源文件,解析每一行数据,进行格式转换,并将结果写入新的文件中。
部署运行你感兴趣的模型镜像
import re
def writealllines(lines,src,srccoding="utf-8",filetype="txt",crlf=True):
    rf = ''
    if crlf == True:
        rf = '\n'
    fp = open(src, "w", encoding=srccoding)
    fp.writelines([line + rf for line in lines])
    fp.close()

def skylistMake(src,ngcdat=None):
    lins = ['SkySafariObservingListVersion=3.0', 'SortedBy=Default Order']
    num = 0
    for line in open(src, "r").read().splitlines():
        it = line
        cm = ''
        if ',' in line:
            it = line.split(',',1)[0]
            cm = line.split(',',1)[1]
        elif '\t' in line:
            it = line.split(',',1)[0]
            cm = line.split(',',1)[1]
        itp = re.match('^([A-z]+)(.*)$', it)
        if itp:
            it = itp.group(1) + ' ' + itp.group(2)
        lins.append('SkyObject=BeginObject')
        lins.append('\tObjectID=4,-1,-1')
        lins.append('\tCatalogNumber=' + it)
        lins.append('\tDefaultIndex=' + str(num))
        if cm != '':
            lins.append('\tComment=' + cm)
        lins.append('EndObject=SkyObject')
        num += 1
    writealllines( lins,src.replace('.txt','.skylist'))
    return
if __name__ == '__main__':
    skylistMake('list.txt')

对于PK和PN G需要处理

def PNsolve(it):
    gp1 = re.match('^PK\s*(.+)([\-\+])(.+)$',it)
    if gp1:
        return 'PK'+gp1.group(1).zfill(3)+gp1.group(2)+gp1.group(3).zfill(4)
    gp2 = re.match('^PN G\s*(.+)([\-\+])(.+)$',it)
    gp2p = re.match('^PNG\s*(.+)([\-\+])(.+)$',it)
    if gp1:
        return 'PN G'+gp1.group(1).zfill(5)+gp1.group(2)+gp1.group(3).zfill(4)
    if gp2p:
        return 'PN G'+gp2p.group(1).zfill(5)+gp2p.group(2)+gp2p.group(3).zfill(4)
    return it

def solveDSO(it):
    it = it.strip()
    it = it.replace(' ','')
    it = it.replace('\t','')
    it = PNsolve(it)
    return it
    

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

C语言-光伏MPPT算法:电导增量法扰动观察法+自动全局搜索Plecs最大功率跟踪算法仿真内容概要:本文档主要介绍了一种基于C语言实现的光伏最大功率点跟踪(MPPT)算法,结合电导增量法与扰动观察法,并引入自动全局搜索策略,利用Plecs仿真工具对算法进行建模与仿真验证。文档重点阐述了两种经典MPPT算法的原理、优缺点及其在不同光照和温度条件下的动态响应特性,同时提出一种改进的复合控制策略以提升系统在复杂环境下的跟踪精度与稳定性。通过仿真结果对比分析,验证了所提方法在快速性和准确性方面的优势,适用于光伏发电系统的高效能量转换控制。; 适合人群:具备一定C语言编程基础和电力电子知识背景,从事光伏系统开发、嵌入式控制或新能源技术研发的工程师及高校研究人员;工作年限1-3年的初级至中级研发人员尤为适合。; 使用场景及目标:①掌握电导增量法与扰动观察法在实际光伏系统中的实现机制与切换逻辑;②学习如何在Plecs中搭建MPPT控制系统仿真模型;③实现自动全局搜索以避免传统算法陷入局部峰值问题,提升复杂工况下的最大功率追踪效率;④为光伏逆变器或太阳能充电控制器的算法开发提供技术参考与实现范例。; 阅读建议:建议读者结合文中提供的C语言算法逻辑与Plecs仿真模型同步学习,重点关注算法判断条件、步长调节策略及仿真参数设置。在理解基本原理的基础上,可通过修改光照强度、温度变化曲线等外部扰动因素,进一步测试算法鲁棒性,并尝试将其移植到实际嵌入式平台进行实验验证。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值