跳转至

ENVITask:ENVI 5.2 中的新增与改进

原文链接: https://www.nv5geospatialsoftware.com/Learn/Blogs/Blog-Details/envitask-new-and-improved-in-envi-52

18512 给文章评分:

暂无评分

ENVITask:ENVI 5.2 中的新增与改进

匿名 2014年10月16日,星期四

正如我在二月的博客文章中所述,ENVI 5.1 引入了 ENVITask 作为新的分析 API。在刚刚发布的 ENVI 5.2 中,我们增加了许多新的任务和支持功能。在 ENVI 5.1 版本中,我们只有 4 个任务,而在 ENVI 5.2 中,我们现在拥有 58 个:

IDL> nv = ENVI()

ENVI> PRINT, nv.TASK_NAMES

AutoChangeThresholdClassification BuildBandStack BuildRasterSeries BuildTimeSeries ChangeThresholdClassification ClassificationAggregation ClassificationSmoothing ClassificationToShapefile ColorSliceClassification DarkSubtractionCorrection DimensionsResampleRaster EqualizationStretchRaster FXSegmentation ForwardICATransform ForwardMNFTransform ForwardPCATransform GaussianStretchRaster GramSchmidtPanSharpening ISODATAClassification ImageBandDifference ImageIntersection ImageThresholdToROI LinearPercentStretchRaster LinearRangeStretchRaster LogStretchRaster MahalanobisDistanceClassification MappingResampleRaster MaximumLikelihoodClassification MinimumDistanceClassification NNDiffusePanSharpening OptimizedLinearStretchRaster PCPanSharpening PercentThresholdClassification PixelScaleResampleRaster QUAC QuerySpectralIndices ROIToClassification RPCOrthorectification RXAnomalyDetection RadiometricCalibration RadiometricNormalization RasterStatistics RasterViewshed RegridRaster RegridRasterSeriesByIndex RegridRasterSeriesByIntersection RegridRasterSeriesByUnion ReprojectGLT RootStretchRaster SpectralAngleMapperClassification SpectralIndex SpectralIndices ThematicChange TrainingClassificationStatistics VectorAttributeToROIs VectorRecordsToROI VegetationSuppression VideoToRasterSeries

这里没有足够的篇幅详细介绍所有任务,但我们为每个任务都提供了包含示例代码的文档。只需在 ENVI 帮助内容的 Programming > Routines > Data Processing 目录下查找即可(或访问网页版这里)。或者,如果您喜欢冒险,可以直接使用 enviTask() 工厂函数请求一个任务,并检查任务对象本身,因为它提供了大量的自省和自我文档功能。

我们为 enviTaskParameter 添加了两个新属性:MIN 和 MAX。这两个属性仅适用于数值类型,并提供有界或无界的范围验证。它们代表的是包含性边界,因此如果 MIN = 0,则 VALUE ≥ 0。这两个属性对于任何参数都是可选的,如果范围是无界的,可以独立指定。

除了在任务目录中添加大量任务外,我们还投入了大量精力来确保每一个 ENVITask 都可以在 ENVI Services Engine 服务器上调用。这些任务发布在一个特殊的 ENVI 服务下,因此查找它们的 URL 将是 http://:/ese/services/ENVI。我们已经扩展了 ESE 支持的数据类型,以允许运行全部 58 个 ENVITask。请参阅 ESE 帮助中的 Writing Tasks > Data Types > ENVI Data Types 部分,了解如何指定这些新类型。

另一个新功能是我们称之为 ENVITask 的动态 UI。如果你有一个 ENVITask 对象,可以将其传递给一个 ENVIUI 方法,以构建一个对话框来设置所有参数。如果你已经设置了某些参数,这些值将显示在对话框中。以下是一个快速示例:

IDL> e = ENVI()

ENVI> oTask = enviTask('NNDiffusePanSharpening')

ENVI> ret = e.UI.SelectTaskParameters(oTask)

该函数的返回值是用户按下的按钮名称,即 "OK" 或 "Cancel"。以下是针对 NNDiffusePanSharpening 任务弹出的对话框:

如你所见,不同的参数类型将使用不同的小部件来允许用户输入。单击输入栅格小部件将打开标准的 ENVI 栅格选择对话框,包含空间和光谱子集选项。Pixel_Size_Ratio 参数是整数类型,因此我们使用了微调框;而两个平滑度参数是浮点类型,因此它们是专门的文本输入小部件,只允许输入数字。你还会注意到 Output_Raster 参数已自动填充了一个文件名,使用 $TEMP 环境变量作为路径,并使用任务名称作为文件名。这可以通过键入新文件名轻松更改,或者使用 "..." 按钮通过文件选择对话框选择输出位置和名称。底部的 ? 按钮将弹出一个帮助页面,详细描述每个参数。勾选 Preview 按钮可以在当前视口分辨率和空间范围内运行任务,并将结果加载到视图中,以便验证这些参数值是否符合你的要求。一旦点击 OK,任务将在完整的输入数据上运行并保存到你指定的文件中。

利用新 WorldView 的空间、光谱和时间价值 面向未来及更远未来的可扩展图像分析