遥感软件_遥感软件的可持续发展

遥感软件

As part of my fellowship with the Software Sustainability Institute, I’ve written an article on Software Sustainability in Remote Sensing. This article was originally written a couple of years ago and it never quite got around to being published. However, I have recently updated it, and it’s now been posted on the SSI’s blog. I’ve also ‘reblogged it’ below: it is a long read, but hopefully you’ll agree that it is worth it.

作为我与软件可持续发展研究所合作的一部分,我写了一篇有关遥感软件可持续性的文章。 这篇文章最初是几年前写的,至今还没有完全发表。 但是,我最近对其进行了更新,并且现在已将其发布在SSI的博客上 。 我也在下面“重新发送了邮件”:读了很长的书,但是希望您会同意它是值得的。

If anyone reading this is also interested in software sustainability in remote sensing, and identifies with some of the issues raised below then please get in touch! I’d love to discuss it with you and see what we can do to improve things.

如果任何人也对遥感软件的可持续性感兴趣,并确定以下提出的一些问题,请联系! 我很乐意与您讨论,看看我们可以做些什么来改进。



1. What is remote sensing?

1.什么是遥感?

Remote sensing broadly refers to the acquisition of information about an object remotely (that is, with no physical contact). The academic field of remote sensing, however, is generally focused on acquiring information about the Earth (or other planetary bodies) using measurements of electromagnetic radiation taken from airborne or satellite sensors. These measurements are usually acquired in the form of large images, often containing measurements in a number of different parts of the electromagnetic spectrum (for example, in the blue, green, red and near-infrared), known as wavebands. These images can be processed to generate a huge range of useful information including land cover, elevation, crop health, air quality, CO2 levels, rock type and more, which can be mapped easily over large areas. These measurements are now widely used operationally for everything from climate change assessments (IPCC, 2007) to monitoring the destruction of villages in Darfur (Marx and Loboda, 2013) and the deforestation of the Amazon rainforest (Kerr and Ostrovsky, 2003).

遥感广义上是指远程(即没有物理接触)获取有关对象的信息。 但是,遥感的学术领域通常集中在使用从机载或卫星传感器获取的电磁辐射的测量值来获取有关地球(或其他行星体)的信息。 这些测量值通常以大图像的形式获取,通常包含电磁波谱的多个不同部分(例如,蓝,绿,红和近红外)的测量值,也就是波段。 可以对这些图像进行处理,以生成范围广泛的有用信息,包括土地覆盖,海拔,作物健康,空气质量,CO 2水平,岩石类型等,这些信息可以轻松地在大面积上绘制。 从气候变化评估(IPCC,2007年)到监测达尔富尔村庄的破坏(Marx和Loboda,2013年)和亚马逊雨林的砍伐(Kerr和Ostrovsky,2003年),这些测量结果现已广泛用于所有操作。

Figure 1: Landsat 8 image of Southampton, UK shown as a false-colour composite using the Near-Infrared, Red and Green bands. Vegetation is bright red, heathland and bare ground is beige/brown, urban areas are light blue, and water is dark blue.

图1:英国南安普敦的Landsat 8图像,显示为使用近红外,红色和绿色波段的伪彩色合成物。 植被是鲜红色的,荒地和裸露的地面是米色/棕色,市区是浅蓝色,水是深蓝色。

The field, which crosses the traditional disciplines of physics, computing, environmental science and geography, developed out of air photo interpretation work during World War II, and expanded rapidly during the early parts of the space age. The launch of the first Landsat satellite in 1972 provided high-resolution images of the majority of the Earth for the first time, producing repeat images of the same location every 16 days at a resolution of 60m. In this case, the resolution refers to the level of detail, with a 60m resolution image containing measurements for each 60x60m area on the ground. Since then, many hundreds of further Earth Observation satellites have been launched which take measurements in wavelengths from ultra-violet to microwave at resolutions ranging from 50km to 40cm. One of the most recent launches is that of Landsat 8, which will contribute more data to an unbroken record of images from similar sensors acquired since 1972, now at a resolution of 30m and with far higher quality sensors. The entire Landsat image archive is now freely available to everyone – as are many other images from organisations such as NASA and ESA – a far cry from the days when a single Landsat image cost several thousands of dollars.

该领域跨越了物理学,计算机,环境科学和地理学的传统学科,在第二次世界大战期间从空中照片解释工作发展而来,并在太空时代初期Swift发展。 1972年发射的第一颗Landsat卫星首次提供了地球大部分区域的高分辨率图像,每16天以60m的分辨率产生相同位置的重复图像。 在这种情况下,分辨率是指细节水平,其中60m分辨率图像包含地面上每个60x60m区域的测量值。 此后,又发射了数百颗地球观测卫星,这些卫星以从50 km到40 cm的分辨率测量从紫外线到微波的波长。 最近发射的卫星之一是Landsat 8,它将为自1972年以来获取的类似传感器的图像连续记录贡献更多数据,现在的分辨率为30m,并且传感器质量更高。 现在,每个人都可以免费使用整个Landsat图像档案库,就像NASA和ESA等组织的许多其他图像一样,与单个Landsat图像要花费数千美元的时代相去甚远。

2. You have to use software

2.您必须使用软件

Given that remotely sensed data are nearly always provided as digital images, it is essential to use software to process them. This was often difficult with the limited storage and processing capabilities of computers in the 1960s and 1970s – indeed, the Corona series of spy satellites operated by the United States from 1959 to 1972 used photographic film which was then sent back to Earth in a specialised ‘re-entry vehicle’ and then developed and processed like standard holiday photos!

鉴于遥感数据几乎总是以数字图像形式提供,因此必须使用软件对其进行处理。 由于1960年代和1970年代计算机的有限存储和处理能力,通常很难做到这一点–实际上,美国从1959年至1972年运营的Corona系列间谍卫星使用照相胶片,然后将照相胶片专门送回地球。重新进入车辆”,然后像标准的假日照片一样进行开发和处理!

However, all civilian remote-sensing programs transmitted their data to ground stations on Earth in the form of digital images, which then required processing by both the satellite operators (to perform some rudimentary geometric and radiometric correction of the data) and the end-users (to perform whatever analysis they wanted from the images).

但是,所有民用遥感程序都以数字图像的形式将其数据传输到地球上的地面站,然后需要卫星运营商(对数据进行一些基本的几何和辐射校正)和最终用户进行处理(以执行他们想要从图像中进行的任何分析)。

In the early days of remote sensing, computers didn’t even have the ability to display images onscreen, and the available software was very limited (see Figure 2a). Nowadays remote sensing researchers use a wide range of proprietary and open-source software, which can be split into four main categories:

在遥感的早期,计算机甚至没有能力在屏幕上显示图像,并且可用软件非常有限(请参见图2a)。 如今,遥感研究人员使用各种专有和开源软件,这些软件可以分为四个主要类别:

  1. Specialist remote-sensing image processing software, such as ENVI, Erdas IMAGINE, eCogniton, Opticks and Monteverdi
  2. Geographical Information System software which provides some remote-sensing processing functionality, such as ArcGIS, IDRISI, QGIS and GRASS
  3. Other specialist remote-sensing software, such as SAMS for processing spectral data, SPECCHIO for storing spectral data with metadata, DART (Gastellu-Etchegorry et al., 1996) for simulating satellite images and many numerical models including 6S (Vermote et al., 1997), PROSPECT and SAIL (Jacquemoud, 1993).
  4. General scientific software, including numerical data processing tools, statistical packages and plotting packages.
  1. 专业遥感图像处理软件,例如ENVI,Erdas IMAGINE,eCogniton,Opticks和Monteverdi
  2. 地理信息系统软件,可提供一些遥感处理功能,例如ArcGIS,IDRISI,QGIS和GRASS
  3. 其他专业的遥感软件,例如用于处理光谱数据的SAMS,用于存储具有元数据的光谱数据的SPECCHIO,用于模拟卫星图像的DART(Gastellu-Etchegorry等,1996)和许多数字模型,包括6S(Vermote等, 1997年),展望和航行(雅克穆德,1993年)。
  4. 通用科学软件,包括数值数据处理工具,统计软件包和绘图软件包。

Figure 2: Remote sensing image processing in the early 1970s (a) and 2013 (b). The 1970s image shows a set of punched cards and an ‘ASCII-art’ printout of a Landsat image of Southern Italy, produced by E. J. Milton as part of his PhD. The 2013 image shows the ENVI software viewing a Landsat 8 image of Southampton on a Windows PC

图2: 1970年代早期(a)和2013(b)的遥感图像处理。 1970年代的图像显示了一组打Kong卡和意大利南部的Landsat图像的“ ASCII艺术”打印输出,该图像由EJ Milton作为其博士学位的一部分制作。 2013年的图像显示了ENVI软件在Windows PC上查看南安普敦的Landsat 8图像

I surveyed approximately forty people at the Remote Sensing and Photogrammetry Society’s Annual Student Meeting 2013 to find out how they used software in their research, and this produced a list of 19 pieces of specialist software which were regularly used by the attendees, with some individual respondents regularly using over ten specialist tools.

我在2013年遥感与摄影测量学会的年度学生会议上对大约40个人进行了调查,以了解他们如何在研究中使用软件,并得出了参与者经常使用的19种专业软件的清单,以及一些个人受访者。定期使用十多种专业工具。

Decisions about which software to use are often based on experience gained through university-level courses. For example, the University of Southampton uses ENVI and ArcGIS as the main software in most of its undergraduate and MSc remote sensing and GIS courses, and many of its students will continue to use these tools significantly for the rest of their career. Due to the limited amount of teaching time, many courses only cover one or two pieces of specialist software, thus leaving students under-exposed to the range of tools which are available in the field. There is always a danger that students will learn that tool rather than the general concepts which will allow them to apply their knowledge to any software they might need to use in the future

关于使用哪种软件的决定通常取决于大学课程的经验。 例如,南安普敦大学在其大部分本科和理学硕士遥感与GIS课程中都使用ENVI和ArcGIS作为主要软件,其许多学生将在其职业生涯的剩余时间内继续大量使用这些工具。 由于教学时间有限,许多课程仅涵盖一两个专业软件,从而使学生对本领域可用工具的了解不足。 学生总是会学习该工具而不是一般概念,这会使他们将知识应用到将来可能需要使用的任何软件中,这始终是一种危险。

I was involved in teaching a course called Practical Skills in Remote Sensing as part of the MSc in Applied Remote Sensing and GIS at the University of Southampton which tried to challenge this, by introducing students to a wide range of proprietary and open-source software used in remote sensing, particularly software which performs more specialist tasks than ENVI and ArcGIS. Student feedback showed that they found this very useful, and many went on to use a range of software in their dissertation projects.

作为南安普顿大学应用遥感和GIS硕士课程的一部分,我参与了一个名为“遥感实用技能”课程的教学,该课程试图通过向学生介绍广泛使用的专有和开源软件来对此进行挑战。在遥感领域,尤其是比ENVI和ArcGIS执行更多专业任务的软件。 学生的反馈表明,他们发现这非常有用,并且许多人继续在其论文项目中使用了一系列软件。

2.1 Open Source Software

2.1开源软件

In the last decade there has been huge growth in open-source GIS software, with rapid developments in tools such as GIS (a GIS display and editing environment with a similar interface to ArcGIS) and GRASS (a geoprocessing system which provides many functions for processing geographic data and can also be accessed through GIS). Ramsey (2009) argues that the start of this growth was caused by the slowness of commercial vendors to react to the growth of online mapping and internet delivery of geospatial data, and this created a niche for open-source software to fill. Once it had a foothold in this niche, open-source GIS software was able to spread more broadly, particularly as many smaller (and therefore more flexible) companies started to embrace GIS technologies for the first time.

在过去的十年中,开源GIS软件得到了巨大的发展,诸如GIS(一种具有与ArcGIS相似的界面的GIS显示和编辑环境)和GRASS(一种提供许多处理功能的地理处理系统)等工具Swift发展。地理数据,也可以通过GIS访问)。 Ramsey(2009)认为,这种增长的开始是由于商业供应商对在线地图和地理空间数据的互联网交付的增长React迟钝所致,这为开源软件的开发创造了一个利基市场。 开源GIS软件一旦在这一细分市场中立足,便能够更广泛地传播,尤其是当许多较小(因此更加灵活)的公司开始首次采用GIS技术时。

Unfortunately, the rapid developments in open-source GIS software have not been mirrored in remote sensing image processing software. A number of open-source GIS tools have specialist remote sensing functionality (for example, the i.* commands in GRASS), but as the entire tool is not focused on remotely sensed image processing they can be harder to use than tools such as ENVI. Open-source remote sensing image processing tools do exist (for example, Opticks, OrfeoToolbox, OSSIM, ILWIS and InterImage), but they tend to suffer from common issues for small open-source software projects, specifically: poor documentation; complex and unintuitive interfaces; and significant unfixed bugs.

不幸的是,开源GIS软件的快速发展并未反映在遥感图像处理软件中。 许多开源GIS工具具有专业的遥感功能(例如GRASS中的i。*命令),但是由于整个工具并不专注于遥感图像处理,因此它们比ENVI等工具更难使用。 确实存在开源遥感图像处理工具(例如,Opticks,OrfeoToolbox,OSSIM,ILWIS和InterImage),但是它们往往会遇到小型开源软件项目的常见问题,特别是:文档质量低; 复杂且不直观的界面; 和重要的未修复错误。

In contrast, there are a number of good open-source non-image-based remote sensing tools, particularly those used for physical modelling (for example, 6S (Vermote et al., 1997), PROSPECT and SAIL (Jacquemoud, 1993)), processing of spectra (SAMS and SPECCHIO (Bojinski et al., 2003; Hueni et al., 2009)), and as libraries for programmers (GDAL, Proj4J).

相比之下,有许多很好的开源非基于图像的遥感工具,尤其是用于物理建模的工具(例如6S(Vermote等,1997),PROSPECT和SAIL(Jacquemoud,1993)) ,频谱处理(SAMS和SPECCHIO(Bojinski等人,2003; Hueni等人,2009)),以及作为程序员的库(GDAL,Proj4J)。

Open source tools are gradually becoming more widely used within the field, but their comparative lack of use amongst some students and researchers compared to closed-source software may be attributed to their limited use in teaching. However, organisations such as the Open Source Geospatial Laboratories (OSGL:www.osgeo.org) are helping to change this, through collating teaching materials based on open-source GIS at various levels, and there has been an increase recently in the use of tools such as Quantum GIS for introductory GIS teaching.

开源工具在该领域逐渐被广泛使用,但是与闭源软件相比,它们在某些学生和研究人员中相对缺乏使用,这可能是由于它们在教学中的使用有限。 但是,诸如开放源地理空间实验室(OSGL: www.osgeo.org )之类的组织正在通过在各个级别上整理基于开放源GIS的教材来帮助改变这一点,并且最近在使用用于介绍性GIS教学的工具,例如Quantum GIS。

3. Programming for remote sensing

3.遥感编程

There is a broad community of scientists who write their own specialist processing programs within the remote sensing discipline, with 80% of the PhD students surveyed having programmed as part of their research. In many disciplines researchers are arguing for increased use and teaching of software, but as there is no real choice as to whether to use software in remote sensing, it is the use and teaching of programming that has become the discussion ground.

有广泛的科学家社区,他们在遥感学科内编写自己的专业处理程序,接受调查的80%的博士生已将其编程作为研究的一部分。 在许多学科中,研究人员都在争辩说要增加软件的使用和教学,但是由于对于是否在遥感中使用软件没有真正的选择,因此编程的使用和教学已经成为讨论的话题。

The reason for the significantly higher prevalence of programming in remote sensing compared to many other disciplines is that much remote sensing research involves developing new methods. Some of these new methods could be implemented by simply combining functions available in existing software, but most non-trivial methods require more than this. Even if the research is using existing methods, the large volumes of data used in many studies make processing using a GUI-based tool unattractive. For example, many studies in remote sensing use time series of images to assess environmental change (for example, deforestation or increases in air pollution) and, with daily imagery now being provided by various sensors, these studies can regularly use many hundreds of images. Processing all of these images manually would be incredibly time-consuming, and thus code is usually written to automate this process. Some processing tools provide ‘macro’ functionality which allow common tasks to be automated, but this is not available in all tools (for example, ENVI) and is often very limited. I recently wrote code to automate the downloading, reprojecting, resampling and subsetting of over 7000 MODIS Aerosol Optical Thickness images, to create a dataset of daily air pollution levels in India over the last ten years: creating this dataset would have been impossible by hand!

与许多其他学科相比,遥感编程的普及率明显更高的原因是,许多遥感研究都涉及开发新方法。 这些新方法中的某些可以通过简单地组合现有软件中可用的功能来实现,但是大多数非平凡的方法所需要的还不止这些。 即使研究使用的是现有方法,许多研究中使用的大量数据也使得使用基于GUI的工具进行处理没有吸引力。 例如,许多遥感研究使用图像的时间序列来评估环境变化(例如,森林砍伐或空气污染的增加),并且由于现在由各种传感器提供的每日图像,这些研究可以定期使用数百幅图像。 手动处理所有这些图像将非常耗时,因此通常会编写代码来自动执行此过程。 某些处理工具提供了“宏”功能,该功能可将常见任务自动化,但是并非在所有工具中都可用(例如,ENVI),并且通常非常有限。 我最近编写了代码,以自动化7000多种MODIS气溶胶光学厚度图像的下载,重新投影,重采样和子集处理,以创建过去十年来印度每日空气污染水平的数据集:手工创建此数据集是不可能的!

The above description suggests two main uses of programming in remote sensing research:

上面的描述提出了编程在遥感研究中的两个主要用途:

  1. Writing code for new methods, as part of the development and testing of these methods
  2. Writing scripts to automate the processing of large volumes of data using existing methods
  1. 编写新方法的代码,作为这些方法的开发和测试的一部分
  2. 编写脚本以使用现有方法自动处理大量数据

3.1 Programming languages: the curious case of IDL and the growth of Python

3.1编程语言:IDL的奇特案例和Python的增长

The RSPSoc questionnaire respondents used languages as diverse as Python, IDL, C, FORTRAN, R, Mathematica, Matlab, PHP and Visual Basic, but the most common of these were Matlab, IDL and Python. Matlab is a commercial programming language which is commonly used across many areas of science, but IDL is generally less well-known, and it is interesting to consider why this language has such a large following within remote sensing.

RSPSoc调查表的受访者使用的语言多种多样,包括Python,IDL,C,FORTRAN,R,Mathematica,Matlab,PHP和Visual Basic,但是最常见的是Matlab,IDL和Python。 Matlab是一种商业编程语言,广泛用于科学的许多领域,但是IDL的知名度通常不高,因此有趣的是,为什么这种语言在遥感领域具有如此大的关注力。

IDL’s popularity stems from the fact that the ENVI remote sensing software is implemented in IDL, and exposes a wide range of its functionality through an IDL Application Programming Interface (API). This led to significant usage of IDL for writing scripts to automate processing of remotely-sensed data, and the similarity of IDL to Fortran (particularly in terms of its array-focused nature) encouraged many in the field to embrace it for developing new methods too. Although first developed in 1977, IDL is still actively developed by its current owner (Exelis Visual Information Solutions) and is still used by many remote sensing researchers, and taught as part of MSc programmes at a number of UK universities, including the University of Southampton.

IDL之所以受欢迎,是因为ENVI遥感软件是在IDL中实现的,并通过IDL应用程序编程接口(API)公开了其广泛的功能。 这导致IDL大量用于编写脚本以自动执行遥感数据的处理,并且IDL与Fortran的相似性(特别是在以阵列为中心的方面)也鼓励该领域的许多人也拥抱它来开发新方法。 。 尽管IDL于1977年首次开发,但仍由其现有所有者(Exelis Visual Information Solutions)积极开发,并且仍被许多遥感研究人员使用,并作为MSc计划的一部分在包括南安普敦大学在内的许多英国大学教授。

However, I feel that IDL’s time as one of the most-used languages in remote sensing is coming to an end. When compared to modern languages such as Python (see below), IDL is difficult to learn, time-consuming to write and, of course, very expensive to purchase (although an open-source version called GDL is available, it is not compatible with the ENVI API, and thus negates one of the main reasons for remote sensing scientists to use IDL).

但是,我感到IDL作为遥感中最常用的语言之一的时代即将结束。 与现代语言(例如Python)相比(见下文),IDL很难学习,编写时间很长,而且购买起来当然很昂贵(尽管可以使用称为GDL的开源版本,但它不兼容ENVI API,从而消除了遥感科学家使用IDL的主要原因之一。

Python is a modern interpreted programming language which has an easy-to-learn syntax – often referred to as ‘executable pseudocode’. There has been a huge rise in the popularity of Python in a wide range of scientific research domains over the last decade, made possible by the development of the numpy (‘numerical python’ (Walt et al., 2011)), scipy (‘scientific python’ (Jones et al., 2001)) and matplotlib (‘matlab-like plotting’ (Hunter, 2007)) libraries. These provide efficient access to and processing of arrays in Python, along with the ability to plot results using a syntax very similar to Matlab. In addition to these fundamental libraries, over two thousand other scientific libraries are available at the Python Package Index (http://pypi.python.org), a number of which are specifically focused on remote-sensing.

Python是一种现代的解释性编程语言,具有易于学习的语法-通常称为“可执行伪代码”。 在过去的十年中,由于numpy('numerical python'(Walt et al。,2011)),scipy('科学python'(Jones等人,2001))和matplotlib('matlab-like plotting'(Hunter,2007))库。 这些提供了在Python中对数组的有效访问和处理,以及使用与Matlab非常相似的语法来绘制结果的功能。 除了这些基本库之外,Python软件包索引( http://pypi.python.org )上还有2000多个其他科学库,其中许多库专门针对遥感。

Remote sensing data processing in Python has been helped by the development of mature libraries of code for performing common tasks. These include the Geospatial Data Abstraction Library (GDAL) which provides functions to load and save almost any remote-sensing image format or vector-based GIS format from a wide variety of programming languages including, of course, Python. In fact, a number of the core GDAL utilities are now implemented using the GDAL Python interface, rather than directly in C++. Use of a library such as GDAL gives a huge benefit to those writing remote-sensing processing code, as it allows them to ignore the details of the individual file formats they are using (whether they are GeoTIFF files, ENVI files or the very complex Erdas IMAGINE format files) and treat all files in exactly the same way, using a very simple API which allows easy loading and saving of chunks of images to and from numpy arrays.

开发成熟的用于执行常见任务的代码库有助于Python中的遥感数据处理。 其中包括地理空间数据抽象库(GDAL),该库提供了从多种编程语言(当然包括Python)中加载和保存几乎所有遥感图像格式或基于矢量的GIS格式的功能。 实际上,现在已经使用GDAL Python接口而不是直接在C ++中实现了许多核心GDAL实用程序。 使用诸如GDAL之类的库,对那些编写遥感处理代码的人来说是一个巨大的好处,因为它使他们可以忽略正在使用的各个文件格式的详细信息(无论是GeoTIFF文件,ENVI文件还是非常复杂的Erdas IMAGINE格式的文件),并使用非常简单的API以完全相同的方式处理所有文件,该API允许轻松地在numpy数组之间加载和保存图像块。

Another set of important Python libraries used by remote-sensing researchers are those originally focused on the GIS community, including libraries for manipulating and processing vector data (such as Shapely) and libraries for dealing with the complex mathematics of projections and co-ordinate systems and the conversion of map references between these (such as the Proj4 library, which has APIs for a huge range of languages). Just as ENVI exposes much of its functionality through an IDL API; ArcGIS, Quantum GIS, GRASS and many other tools expose their functionality through a Python API. Thus, Python can be used very effectively as a ‘glue language’ to join functionality from a wide range of tools together into one coherent processing hierarchy.

遥感研究人员使用的另一套重要的Python库是那些最初专注于GIS社区的库,包括用于处理和处理矢量数据的库(例如Shapely)以及用于处理投影和坐标系的复杂数学的库,以及这些之间的地图引用转换(例如Proj4库,该库具有适用于多种语言的API)。 就像ENVI通过IDL API公开其许多功能一样; ArcGIS,Quantum GIS,GRASS和许多其他工具通过Python API公开了其功能。 因此,Python可以非常有效地用作一种“胶合语言”,将各种工具的功能结合在一起,形成一个统一的处理层次。

A number of remote-sensing researchers have also released very specialist libraries for specific sub-domains within remote-sensing. Examples of this include the Earth Observation Land Data Assimilation System (EOLDAS) developed by Paul Lewis (Lewis et al., 2012), and the Py6S (Wilson, 2012) andPyProSAIL (Wilson, 2013) libraries which I have developed, which provide a modern programmatic interface to two well-known models within the field: the 6S atmospheric radiative transfer model and the ProSAIL vegetation spectral reflectance model.

许多遥感研究人员还针对遥感中的特定子域发布了非常专业的库。 例如,保罗·刘易斯(Lewis等人,2012)开发的地球观测土地数据同化系统(EOLDAS),以及我开发的Py6S (Wilson,2012)和PyProSAIL (Wilson,2013)库,它们提供了与该领域内两个著名模型的现代化程序接口:6S大气辐射传输模型和ProSAIL植被光谱反射率模型。

Releasing these libraries – along with other open-source remote sensing code – has benefited my career, as it has brought me into touch with a wide range of researchers who want to use my code, helped me to develop my technical writing skills and also led to the publication of a journal paper. More importantly than any of these though, developing the Py6S library has given me exactly the tool that I need to do my research. I don’t have to work around the features (and bugs!) of another tool – I can implement the functions I need, focused on the way I want to use them, and then use the tool to help me do science. Of course, Py6S and PyProSAIL themselves rely heavily on a number of other Python scientific libraries – some generic, some remote-sensing focused – which have been realised by other researchers.

释放这些库以及其他开放源代码的遥感代码使我的职业生涯受益,因为它使我与希望使用我的代码的广泛研究人员接触,帮助我发展了我的技术写作技能,并且领导了发表期刊论文。 比起其他任何一个更重要的是,开发Py6S库已经为我提供了进行研究所需的工具。 我不必解决另一个工具的功能(和错误!)–我可以实现所需的功能,专注于我想使用它们的方式,然后使用该工具帮助我进行科学研究。 当然,Py6S和PyProSAIL本身也严重依赖于其他一些Python科学库,其中一些是通用的,有些是以遥感为重点的,这些已由其他研究人员实现。

The Py6S and PyProSAIL packages demonstrate another attractive use for Python: wrapping legacy code in a modern interface. This may not seem important to some researchers – but many people struggle to use and understand models written in old languages which cannot cope with many modern data input and output formats. Python has been used very successfully in a number of situations to wrap these legacy codes and provide a ‘new lease of life’ for tried-and-tested codes from the 1980s and 1990s.

Py6S和PyProSAIL软件包展示了Python的另一个吸引人的用法:将旧代码包装在现代界面中。 对于某些研究人员来说,这似乎并不重要-但许多人都在努力使用和理解以旧语言编写的模型,这些模型无法应付许多现代数据输入和输出格式。 在许多情况下,Python已经非常成功地用于包装这些遗留代码,并为1980年代和1990年代久经考验的代码提供了“新的生命”。

3.2 Teaching programming in remote sensing

3.2 遥感教学编程

I came into the field of remote sensing having already worked as a programmer, so it was natural for me to use programming to solve many of the problems within the field. However, many students do not have this prior experience, so rely on courses within their undergraduate or MSc programmes to introduce them both to the benefits of programming within the field, and the technical knowledge they need to actually do it. In my experience teaching on these courses, the motivation is just as difficult as the technical teaching – students need to be shown why it is worth their while to learn a complex and scary new skill. Furthermore, students need to be taught how to program in an effective, reproducible manner, rather than just the technical details of syntax.

我进入遥感领域已经是一名程序员,因此使用编程解决该领域的许多问题对我来说是很自然的。 但是,许多学生没有以前的经验,因此只能依靠其本科或理学硕士课程中的课程,向他们介绍该领域编程的好处以及实际所需的技术知识。 根据我在这些课程中的教学经验,动机与技术教学一样困难–需要向学生展示为什么花时间学习复杂而令人恐惧的新技能是值得的。 此外,需要教会学生如何以有效,可复制的方式进行编程,而不仅仅是语法的技术细节。

I believe that my ability to program has significantly benefited me as a remote-sensing researcher, and I am convinced that more students should be taught this essential skill. It is my view that programming must be taught far more broadly at university: just as students in disciplines from Anthropology to Zoology get taught statistics and mathematics in their undergraduate and masters-level courses, they should be taught programming too. This is particularly important in a subject such as remote sensing where programming can provide researchers with a huge boost in their effectiveness and efficiency. Unfortunately, where teaching is done, it is often similar to department-led statistics and mathematics courses: that is, not very good. Outsourcing these courses to the Computer Science department is not a good solution either – remote sensing students do not need a CS1-style computer science course, they need a course specifically focused on programming within remote sensing.

我相信我的编程能力已使我作为遥感研究人员受益匪浅,我坚信应该向更多的学生传授这项基本技能。 我认为,程序设计必须在大学中进行更广泛的教学:就像人类学到动物学等学科的学生在其本科和硕士课程中学习统计学和数学一样,他们也应该被编程学习。 这在遥感等主题中尤其重要,因为编程可以使研究人员的效率和效率大大提高。 不幸的是,在进行教学的地方,它通常与部门主导的统计学和数学课程相似:即不是很好。 将这些课程外包给计算机科学系也不是一个好的解决方案–遥感学生不需要CS1风格的计算机科学课程,他们需要专门针对遥感编程的课程。

In terms of remote sensing teaching, I think it is essential that a programming course (preferably taught using a modern language like Python) is compulsory at MSc level, and available at an undergraduate level. Programming training and support should also be available to researchers at PhD, Post-Doc and Staff levels, ideally through some sort of drop-in ‘geocomputational expert’ service.

在遥感教学方面,我认为至关重要的一点是,编程课程(最好使用Python之类的现代语言进行授课)必须是MSc级别的必修课程,并且是面向本科生的课程。 编程培训和支持也应该提供给博士,博士后和职员级别的研究人员,最好是通过某种形式的“地理计算专家”服务进行。

4. Reproducible research in remote sensing

4.遥感方面的可重复研究

Researchers working in ‘wet labs’ are taught to keep track of exactly what they have done at each step of their research, usually in the form of a lab notebook, thus allowing the research to be reproduced by others in the future. Unfortunately, this seems to be significantly less common when dealing with computational research – which includes most research in remote sensing. This has raised significant questions about the reproducibility of research carried out using ‘computational laboratories’, which leads to serious questions about the robustness of the science carried out by researchers in the field – as reproducibility is a key distinguishing factor of scientific research from quackery (Chalmers, 1999).

在“湿实验室”中工作的研究人员被教导要准确地跟踪他们在研究的每个步骤中所做的事情,通常以实验室笔记本的形式进行记录,从而使研究结果将来可以被其他人复制。 不幸的是,这在处理计算研究时似乎并不常见,其中包括大多数遥感研究。 这就引发了有关使用“计算实验室”进行的研究的可重复性的重大问题,这导致了对该领域研究人员所进行的科学的鲁棒性的严重质疑,因为可重复性是科学研究与地震学的关键区别因素( Chalmers,1999)。

Reproducibility is where the automating of processing through programming really shows its importance: it is very hard to document exactly what you did using a GUI tool, but an automated script for doing the same processing can be self-documenting. Similarly, a page of equations describing a new method can leave a lot of important questions unanswered (what happens at the boundaries of the image? how exactly are the statistics calculated?) which will be answered by the code which implements the method.

可重现性是通过编程实现自动化的真正体现其重要性的地方:要准确记录您使用GUI工具所做的工作非常困难,但是用于执行相同处理的自动化脚本可以自我记录。 同样,描述新方法的方程式页面可能会遗漏许多重要问题(在图像的边界处发生什么情况?统计信息的计算方式如何?),这些问题将由实现该方法的代码来回答。

A number of papers in remote sensing have shown issues with reproducibility. For example, Saleska et al. (2007) published a Science paper stating that the Amazon forest increased in photosynthetic activity during a widespread drought in 2005, and thus suggested that concerns about the response of the Amazon to climate change were overstated. However, after struggling to reproduce this result for a number of years, Samanta et al. (2010) eventually published a paper showing that the exact opposite was true, and that the spurious results were caused by incorrect cloud and aerosol screening in the satellite data used in the original study. If the original paper had provided fully reproducible details on their processing chain – or even better, code to run the entire process – then this error would likely have been caught much earlier, hopefully during the review process.

遥感方面的许多论文都显示了可重复性问题。 例如,Saleska等。 (2007年)发表在《科学》杂志上的一篇论文指出,在2005年的干旱期间,亚马逊森林的光合活动增加,因此,人们对亚马逊对气候变化React的担忧被夸大了。 然而,经过多年的重复努力,Samanta等人。 (2010年)最终发表了一篇论文,表明正好相反,而虚假结果是由原始研究中使用的卫星数据中不正确的云和气溶胶筛查引起的。 如果原始论文在其处理链上提供了完全可重现的细节,或者甚至更好地提供了运行整个过程的代码,那么该错误可能会更早地被发现,希望在审查过程中被发现。

I have personally encountered problems reproducing other research published in the remote sensing literature – including the SYNTAM method for retrieving Aerosol Optical Depth from MODIS images (Tang et al., 2005), due to the limited details given in the paper, and the lack of available code, which has led to significant wasted time. I should point out, however, that some papers in the field deal with reproducibility very well. Irish et al. (2000) provide all of the details required to fully implement their revised version of the Landsat Automatic Cloud-cover Assessment Algorithm (ACCA), mainly through a series of detailed flowcharts in their paper. The release of their code would have saved me re-implementing it, but at least all of the details were given.

我本人在复制遥感文献中发表的其他研究时遇到了问题,包括SYNTAM方法从MODIS图像中检索气溶胶光学深度(Tang等人,2005年),原因是本文提供的细节有限,而且缺乏可用的代码,导致浪费大量时间。 但是,我应该指出,该领域的一些论文对再现性的处理非常好。 爱尔兰等。 (2000年)主要通过其论文中的一系列详细流程图,提供了全面实施其Landsat自动云覆盖评估算法(ACCA)修订版所需的所有细节。 释放他们的代码将使我免于重新实现它,但是至少给出了所有详细信息。

5. Issues and possible solutions

5.问题和可能的解决方案

The description of the use of software in remote sensing above has raised a number of issues, which are summarised here:

上面有关在遥感中使用软件的描述引起了许多问题,在此总结如下:

  1. There is a lack of open-source remote-sensing software comparable to packages such as ENVI or Erdas Imagine. Although there are some tools which fulfil part of this need, they need an acceleration in development in a similar manner to Quantum GIS to bring them to a level where researchers will truly engage. There is also a serious need for an open-source tool for Object-based Image Analysis, as the most-used commercial tool for this (eCognition) is so expensive that it is completely unaffordable for many institutions.
  2. There is a lack of high-quality education in programming skills for remote-sensing students at undergraduate, masters and PhD levels.
  3. Many remote sensing problems are conceptually easy to parallelise (if the operation on each pixel is independent then the entire process can be parallelised very easily), but there are few tools available to allow serial code to be easily parallelised by researchers who are not experienced in high performance computing.
  4. Much of the research in the remote sensing literature is not reproducible. This is a particular problem when the research is developing new methods or algorithms which others will need to build upon. The development of reproducible research practices in other disciplines has not been mirrored in remote sensing, as yet.
  1. 缺少像ENVI或Erdas Imagine这样的软件包可比的开源遥感软件。 尽管有一些工具可以满足部分需求,但它们需要以类似于Quantum GIS的方式加速开发,以使它们达到研究人员真正参与的水平。 迫切需要一种用于基于对象的图像分析的开源工具,因为用于此目的(eCognition)的最常用的商业工具非常昂贵,以至于许多机构完全无法负担。
  2. 缺少针对本科,硕士和博士学位的遥感学生的编程技能的高质量教育。
  3. 从概念上讲,许多遥感问题很容易并行化(如果每个像素上的操作是独立的,则整个过程可以非常容易地并行化),但是很少有工具可以使没有经验的研究人员可以轻松地并行化串行代码。高性能计算。
  4. 遥感文献中的许多研究是不可重复的。 当研究正在开发其他人需要建立的新方法或算法时,这是一个特殊的问题。 到目前为止,其他学科中可再现的研究实践的发展尚未反映在遥感中。

Problems 2 & 4 can be solved by improving the education and training of researchers – particularly students – and problems 1 & 3 can be solved by the development of new open-source tools, preferably with the involvement of active remote sensing researchers. All of these solutions, however, rely on programming being taken seriously as a scientific activity within the field, as stated by the Science Code Manifesto (http://sciencecodemanifesto.org).

问题2和4可以通过改善研究人员(尤其是学生)的教育和培训来解决,而问题1和3可以通过开发新的开源工具来解决,最好是在活跃的遥感研究人员的参与下进行。 但是,所有这些解决方案都依赖于编程,这是科学代码宣言( http://sciencecodemanifesto.org )所指出的,被视为本领域的一项科学活动。

6. Advice

6.忠告

The first piece of advice I would give any budding remote sensing researcher is learn to program! It isn’t that hard – honestly! – and the ability to express your methods and processes in code will significantly boost your productivity, and therefore your career.

我要给任何新兴的遥感研究人员提供的第一条建议就是学习编程! 老实说,这并不难! –以及用代码表达您的方法和流程的能力将极大地提高您的生产率,从而提高您的职业生涯。

Once you’ve learnt to program, I would have a few more pieces of advice for you:

一旦您学会编程,我将为您提供更多建议:

  • Script and code things as much as possible, rather than using GUI tools. Graphical User Interfaces are wonderful for exploring data – but by the time you click all of the buttons to do some manual processing for the 20th time (after you’ve got it wrong, lost the data, or just need to run it on another image) you’ll wish you’d coded it.
  • Don’t re-invent the wheel. If you want to do an unsupervised classification then use a standard algorithm (such as ISODATA or K-means) implemented through a robust and well-tested library (like the ENVI API, or scikit-learn) – there is no point wasting your time implementing an algorithm that other people have already written for you!
  • Try and get into the habit of documenting your code well – even if you think you’ll be the only person who looks at it, you’ll be surprised what you can forget in six months!
  • Don’t be afraid to release your code – people won’t laugh at your coding style, they’ll just be thankful that you released anything at all! Try and get into the habit of making research that you publish fully reproducible, and then sharing the code (and the data if you can) that you used to produce the outputs in the paper.
  • 尽可能编写脚本和代码,而不要使用GUI工具。 图形用户界面非常适合浏览数据-但是当您单击所有按钮进行第20次手动处理时(错误,丢失数据或只需要在另一张图像上运行) ),那么您希望对其进行编码。
  • 不要重新发明轮子。 如果您要进行无监督分类,则使用通过健壮且经过充分测试的库(例如ENVI API或scikit-learn)实现的标准算法(例如ISODATA或K-means)–浪费时间是没有意义的实现其他人已经为您编写的算法!
  • 尝试养成良好地编写代码文档的习惯-即使您认为自己是唯一查看代码的人,您也会惊讶于六个月内忘记的一切!
  • 不要害怕发布您的代码-人们不会嘲笑您的编码风格,他们只会感谢您发布了所有内容! 尝试养成使您发表的研究具有完全可重复性的习惯,然后共享用于产生论文输出的代码(如果可能,还可以共享数据)。

References

参考资料

Bojinski, S., Schaepman, M., Schläpfer, D., Itten, K., 2003. SPECCHIO: a spectrum database for remote sensing applications. Comput. Geosci. 29, 27–38.

Bojinski,S.,Schaepman,M.,Schläpfer,D.,Itten,K.,2003。SPECCHIO:用于遥感应用的频谱数据库。 计算 Geosci。 29,27–38。

Chalmers, A.F., 1999. What is this thing called science? Univ. of Queensland Press.

Chalmers,AF,1999年。这叫科学吗? 大学 昆士兰出版社。

Gastellu-Etchegorry, J.P., Demarez, V., Pinel, V., Zagolski, F., 1996. Modeling radiative transfer in heterogeneous 3-D vegetation canopies. Remote Sens. Environ. 58, 131–156. doi:10.1016/0034-4257(95)00253-7

Gastellu-Etchegorry,JP,Demarez,V.,Pinel,V.,Zagolski,F.,1996。建模异质3D植被冠层中的辐射传递。 遥感环境。 58,131-156。 doi:10.1016 / 0034-4257(95)00253-7

Hueni, A., Nieke, J., Schopfer, J., Kneubühler, M., Itten, K.I., 2009. The spectral database SPECCHIO for improved long-term usability and data sharing. Comput. Geosci. 35, 557–565.

Hueni,A.,Nieke,J.,Schopfer,J.,Kneubühler,M.,Itten,KI,2009。光谱数据库SPECCHIO可改善长期可用性和数据共享。 计算 Geosci。 35,557–565。

Hunter, J.D., 2007. Matplotlib: A 2D Graphics Environment. Comput. Sci. Eng. 9, 90–95. doi:10.1109/MCSE.2007.55

Hunter,JD,2007年。Matplotlib:2D图形环境。 计算 科学 。 9,90–95。 doi:10.1109 / MCSE.2007.55

IPCC, 2007. Climate change 2007: The physical science basis 6, 07.

IPCC,2007年。《气候变化2007:物理学基础》第6期,第7期。

Irish, R.R., 2000. Landsat 7 automatic cloud cover assessment, in: AeroSense 2000. International Society for Optics and Photonics, pp. 348–355.

爱尔兰,RR,2000年。Landsat7自动云层评估,见:AeroSense2000。国际光学和光子学会,第348–355页。

Jacquemoud, S., 1993. Inversion of the PROSPECT+ SAIL canopy reflectance model from AVIRIS equivalent spectra: theoretical study. Remote Sens. Environ. 44, 281–292.

Jacquemoud,S.,1993。从AVIRIS等效光谱中反算PROSPECT + SAIL冠层反射率模型:理论研究。 遥感环境。 44,281–292。

Jones, E., Oliphant, T., Peterson, P., others, 2001. SciPy: Open source scientific tools for Python.

Jones,E.,Oliphant,T.,Peterson,P。等,2001年。SciPy:Python的开源科学工具。

Kerr, J.T., Ostrovsky, M., 2003. From space to species: ecological applications for remote sensing. Trends Ecol. Evol. 18, 299–305. doi:10.1016/S0169-5347(03)00071-5

Kerr,JT,Ostrovsky,M.,2003年。从空间到物种:遥感的生态应用。 趋势Ecol。 进化 18,299–305。 doi:10.1016 / S0169-5347(03)00071-5

Lewis, P., Gómez-Dans, J., Kaminski, T., Settle, J., Quaife, T., Gobron, N., Styles, J., Berger, M., 2012. An Earth Observation Land Data Assimilation System (EO-LDAS). Remote Sens. Environ. 120, 219–235. doi:10.1016/j.rse.2011.12.027

刘易斯,P。,戈麦斯-丹斯,J。,卡明斯基,T。,定居,J。,夸菲尔,T。,哥布伦,N。,样式,J。,伯杰,M.,2012年。地球观测土地数据同化系统(EO-LDAS)。 遥感环境。 120,219–235。 doi:10.1016 / j.rse.2011.12.027

Marx, A.J., Loboda, T.V., 2013. Landsat-based early warning system to detect the destruction of villages in Darfur, Sudan. Remote Sens. Environ. 136, 126–134. doi:10.1016/j.rse.2013.05.006

马克思,A​​J,罗伯达,电视,2013年。基于Landsat的预警系统,可检测苏丹达尔富尔村庄的破坏情况。 遥感环境。 136,126–134。 doi:10.1016 / j.rse.2013.05.006

Ramsey, P., 2009. Geospatial: An Open Source Microcosm. Open Source Bus. Resour.

Ramsey,P.,2009年。地理空间:开放源代码缩影。 开源总线。 资源。

Saleska, S.R., Didan, K., Huete, A.R., Da Rocha, H.R., 2007. Amazon forests green-up during 2005 drought. Science 318, 612–612.

Saleska,SR,Didan,K.,Huete,AR,Da Rocha,HR,2007。2005年干旱期间亚马逊森林绿化。 科学318,612–612。

Samanta, A., Ganguly, S., Hashimoto, H., Devadiga, S., Vermote, E., Knyazikhin, Y., Nemani, R.R., Myneni, R.B., 2010. Amazon forests did not green-up during the 2005 drought. Geophys. Res. Lett. 37, L05401.

Samanta,A.,Ganguly,S.,Hashimoto,H.,Devadiga,S.,Vermote,E.,Knyazikhin,Y.,Nemani,RR,Myneni,RB,2010。2005年,亚马逊森林未绿化干旱。 地理学。 Res。 来吧 37,L05401。

Tang, J., Xue, Y., Yu, T., Guan, Y., 2005. Aerosol optical thickness determination by exploiting the synergy of TERRA and AQUA MODIS. Remote Sens. Environ. 94, 327–334. doi:10.1016/j.rse.2004.09.013

Tang,J.,Xue,Y.,Yu,T.,Guan,Y.,2005。利用TERRA和AQUA MODIS的协同作用确定气溶胶光学厚度。 遥感环境。 94,327–334。 doi:10.1016 / j.rse.2004.09.013

Vermote, E.F., Tanre, D., Davis, J.L., Herman, M., Morcette, J.J., 1997. Second Simulation of the Satellite Signal in the Solar Spectrum, 6S: an overview. IEEE Trans. Geosci. Remote Sens. 35, 675 –686. doi:10.1109/36.581987

Vermote,EF,Tanre,D.,Davis,JL,Herman,M.,Morcette,JJ,1997年。太阳光谱中卫星信号的第二次仿真,6S:概述。 IEEE Trans。 Geosci。 遥感35,675 –686。 doi:10.1109 / 36.581987

Walt, S. van der, Colbert, S.C., Varoquaux, G., 2011. The NumPy Array: A Structure for Efficient Numerical Computation. Comput. Sci. Eng. 13, 22–30. doi:10.1109/MCSE.2011.37

Walt,S。van der,Colbert,SC,Varoquaux,G.,2011年。NumPy数组:高效数值计算的结构。 计算 科学 。 13、22–30。 doi:10.1109 / MCSE.2011.37

Wilson, R.T., 2013. PyProSAIL.

威尔逊,RT,2013年。PyProSAIL。

翻译自: https://www.pybloggers.com/2016/05/software-sustainability-in-remote-sensing/

遥感软件

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值