读取并绘制极光的视频数据。

themisasi的Python项目详细描述


zenodododoi构建状态coverage status构建状态pypi versionspypi download stats

Themis GBO ASI读卡器

读取并绘制来自python的256x256"高分辨率"themis asi地基成像仪数据。 使用带有单色的Starlight Xpress Lodestar MX716相机,以2002年的原始设计收集主要ASI数据 索尼icx249al成像芯片。 从全尺寸752 x 582像素(512 x 512像素)到256 x 256像素的分区是2x2像素,并通过USB 1.1进行检索以存储磁盘。

此软件包还显示注册的Themis ASI Star 板比例, 为每个像素提供方位角和仰角。

安装

  1. 安装仅使用numpy读取cdf的cdflib:
    pip install -r requirements.txt
    
  2. 安装此程序
    pip install -e .
    

您可以从顶部cdflib目录:

测试基本功能
pytest

用法

分析人员使用MIS-ASI数据的主要方法之一是将其加载到三维数组(时间,x,y)中。

单次

本例中ASI视频文件位于~/data/themis中,并在显示的时间选择Gakona站点。

importthemisasiastadat=ta.load('~/data/themis',site='gako',treq='2011-01-06T17:00:03')

这将返回最接近请求时间的gakona相机的相机图像,以及"az"、"el"校准数据(如果可用)。

THEMIS-ASI输出xarray.dataset, 它被用于地球科学和天文学。 xarray可以被认为是一个"智能"numpy数组,或者一个多维pandas数组。 Themis图像数据堆栈通过以下方式获得:

dat=ta.load(...)imgs=dat['imgs']
  • dat.time包含每个图像的近似时间(考虑有限的曝光时间)。
  • dat.xdat.y是简单的像素索引,可能并不经常需要。

图像+方位角,仰角

加载校准数据给出每个像素的方位角、仰角和纬度照相机.

importthemisasiastadat=ta.load('~/data/themis',site='gako',treq='2011-01-06T17:00:03')

如果存在适当的校准文件,dat还包含"az"、"el"、"lat"、"lon"等,以便使用数据进行多摄像机分析。

坐标转换(可选)

如果需要,使用 pymap3d

pip install pymap3d

然后在python中:

importpymap3daspmrasc,decl=pm.azel2radec(dat.az,dat.el,dat.lat,dat.lon,dat.time)

下载、读取并打印此主数据

使用asyncioaiohttp_请求并发下载数据。 每个站点都有一个并发的worker启动,可以跨站点同时下载一次。 因此,如果下载一个网站,一次下载一次。 如果下载5个站点,则按站点在请求的时间内一次下载5个文件。

从THEMIS全天成像仪获取视频数据 数据存储库。 这个 板秤 数据也被下载。 校准文件命名为*asc*.cdf*skymap*.sav

示例:2012年2月4日,8 ut gakona

DownloadThemis 2012-02-04T08 gako ~/data

或者通过API:

pip install -r requirements.txt
0

使用该api,可以方便地同时遍历多个站点:

pip install -r requirements.txt
1

使用校准数据,验证校准数据的时间范围是否适合图像数据的时间范围。 例如,如果在维护期间相机曾在机柜中移动,则1999年的校准数据在2018年可能无效。https://github.com/dib lab/khmer/pull/1430

您可以选择从python中下载:

pip install -r requirements.txt
2

在文件中获取时间

便利函数themisasi.io.filetimes(filename)返回文件中pythondatetime的列表

视频播放/PNG转换

此示例播放视频内容。

使用-o选项将帧转储到各个png,以便于来回查看。 校准文件(第二个文件名)是可选的。

pip install -r requirements.txt
3

绘制像素时间序列

再次,请确保校准文件适合视频的时间范围--相机可能在维护期间已移动/重新定向。

像素可以通过(方位角、仰角)或(纬度、经度、投影高度[km])指定。

方位角/仰角:

pip install -r requirements.txt
4

纬度、经度、投影高度[公里]: 通常最亮的极光在100-110公里的高度范围内,所以通常的近似值是假设"所有"的亮度来自这个区域的一个高度。

pip install -r requirements.txt
5

注释

Themis站点地图(2009年)

Themis site map

这是GBO ASI光谱响应:

Themis spectral response

文章

这些文章对本系统进行了重要的描述。

资源

Matlab

Matlab代码已经过时了,Python版本还有很多:

pip install -r requirements.txt
6

数据损坏

我发现idl 8.0在保存字节的结构化数组时有问题。 虽然当前版本的idl可以读取这些损坏的.sav文件,但gdl 0.9.4和scipy0.16.1不能。 我提交了 SCipy补丁 允许读取这些文件,这些文件已合并到SCIPY 0.18.0中。

作为回退,使用 idl 目录。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用ApachePOI将excel文件导入postgreSQL表   java多线程从iText pdf提取文本   winapi Java和SetWindowDisplayAffinity   eclipse juno的java Websphere 6.1插件   java MPAndroidChart:为Y轴提供一些偏移   java中作为参数传递枚举类型的继承   java Gui jframe的工作原理与netbeans不同   使用Bouncy Castle和PDFBox在Java中验证PDF签名   优化缩小Java代码   java无法在安卓中从Firebase取回子数据   返回的java方法?我应该什么时候用?   java错误处理已完成,退出代码为1。与穿过阵列的for循环有关   多线程Java volatile是否阻止缓存或强制执行写缓存?   java Multi-collectItems如何提前终止并返回已收集的项目   java为什么不在服务(请求,响应)中直接调用processRequest(请求,响应)?   java如何从字符串生成int数组?   打印获取用户输入的值并在其他预选文本中显示。JAVA   未显示java DynamicAsper UTF8字符   java Eclipse RCP:不启动应用程序的命令行参数