从栅格数据中提取时间序列特征

tsraster的Python项目详细描述


TS光栅

ts-raster是一个python包,用于分析光栅数据的时间序列特征。 它允许地理空间数据的特征提取、降维和机器学习技术的应用。

  • 输入数据:历史光栅数据(例如每月温度数据(2000-2018)
  • 提取特征:均值、最小值、最大值、方差、标准差…输入数据的
  • 输出:将要素作为列的数据帧或将要素作为标注栏的光栅文件

安装

稳定版本:

pip install tsraster

来自github:

git clone https://github.com/adbeda/ts-raster
cd ts-raster
pip install e .

输入数据结构

将从中提取要素的输入光栅文件被组织为允许从包含多个文件夹的文件中提取。

示例数据:

temprature
    2005
        tmx-200501.tif 
        tmx-200502.tif
        tmx-200503.tif ...
    2006
        tmx-200601.tif
        tmx-200602.tif
        tmx-200603.tif...
    2007
        ...

温度:变量

  • 2005年、2006年、2007年:年份
    • tmx-200501.tif:图像
      • tmx:每个图像的唯一标识符
      • 200501:年和月

TS光栅将把值“200501”视为唯一的时间标识符。

用法:

fromtsraster.prepimportsReadastrfromtsraster.calculateimportcalculateFeatures#directorypath="../docs/img/temperature/"image_name=tr.image_names(path)print(image_name)
['tmx-200601', 'tmx-200603', 'tmx-200602', 'tmx-200703', 'tmx-200702', 'tmx-200701', 'tmx-200501', 'tmx-200502', 'tmx-200503']

将每个图像转换为数组,并将其堆叠为带

rasters=tr.image2array(path)rasters.shape
(1120, 872, 9)

计算功能

可以通过从统计摘要的完整列表中进行选择来定制可以提取的特征数量 列出了here。 例如,下面的示例包含16个功能。

        parameters = {
        "mean": None,
        "maximum": None,
        "median":None,
        "minimum":None,
        "mean_abs_change":None,
        "mean_change":None,
        "quantile":[{"q": 0.15},{"q": 0.05},{"q": 0.85},{"q": 0.95}],
        "longest_strike_above_mean":None,
        "longest_strike_below_mean":None,
        "number_cwt_peaks":[{"n": 6},{"n": 12}],
        "skewness":None,
        "sum_values":None
    }
ts_features=calculateFeatures(path=path,parameters=parameters,reset_df=False,tiff_output=False)
Feature Extraction: 100%|██████████| 50/50 [09:57<00:00,  2.31s/it]  

../docs/img/temperature/extracted_features.csv

如果光栅文件已转换为pandas数据帧,请将rest_df设置为True。 要将提取的特征保存为一个geotiff文件中的堆叠带,请将tiff_output转到True

输出选项(1):熊猫数据框

ts_features.describe()
variable    value__longest_strike_above_mean 	value__longest_strike_below_mean 	value__maximum 	 value__mean 	value__mean_abs_change 	value__mean_change 	value__median 	value__minimum 	value__number_cwt_peaks__n_12 	value__number_cwt_peaks__n_6 	value__quantile__q_0.05 	value__quantile__q_0.15 	value__quantile__q_0.85 	value__quantile__q_0.95 	value__skewness 	value__sum_values
count                          976640.000000 	                   976640.000000 	 976640.000000 976640.000000 	         976640.000000 	     976640.000000 	976640.000000 	976640.000000 	                976640.000000 	               976640.000000 	          976640.000000 	          976640.000000 	          976640.000000 	          976640.000000 	  976640.000000 	    976640.000000
mean 	                            6.848954 	                        6.842414 	     12.174632 	    7.053721 	              2.441626 	          0.398589 	     5.764061 	     3.676642 	                     0.381241 	                    0.588133 	               3.836781 	               4.149142 	              10.977326 	              11.764437 	       0.226742 	        63.483490
std 	                            2.873678 	                        2.881861 	     16.604448 	    9.836145 	              3.339791 	          0.560275 	     8.230023 	     5.625607 	                     0.529043 	                    0.839891 	               5.801362 	               6.174634 	              15.021573 	              16.064091 	       0.310793 	        88.525303
min 	                            1.000000 	                        2.000000 	      0.000000 	   -0.569444 	              0.000000 	          0.000000 	    -4.375000 	    -7.250000 	                     0.000000 	                    0.000000 	              -7.100000 	              -6.800000 	               0.000000 	               0.000000 	      -0.686569 	        -5.125000
25% 	                            3.000000 	                        3.000000 	      0.000000 	    0.000000 	              0.000000 	          0.000000 	     0.000000 	     0.000000 	                     0.000000 	                    0.000000 	               0.000000 	               0.000000 	               0.000000 	               0.000000 	       0.000000 	         0.000000
50% 	                            9.000000 	                        9.000000 	      0.000000 	    0.000000 	              0.000000 	          0.000000 	     0.000000 	     0.000000 	                     0.000000 	                    0.000000 	               0.000000 	               0.000000 	               0.000000 	               0.000000 	       0.000000 	         0.000000
75% 	                            9.000000 	                        9.000000 	     31.062500 	   17.548611 	              6.531250 	          1.000000 	    14.000000 	     8.687500 	                     1.000000 	                    1.000000 	               8.962500 	               9.512500 	              27.800000 	              29.975000 	       0.596130 	       157.937500
max 	                            9.000000 	                        9.000000 	     49.000000 	   30.666667 	              9.859375 	          2.000000 	    27.000000 	    20.000000 	                     2.000000 	                    3.000000 	              20.000000 	              20.200000 	              45.000000 	              47.800000 	       1.558534                276.000000

输出选项(2):多波段图像

png

TS光栅还支持:

  • 识别相关特征
  • 通过特征选择减小尺寸
  • 从特征/光栅文件进行分层随机采样
  • 培训和测试机器学习模型(随机森林、xgboost、elasticnet)

确认

  • 特征提取遵循python包tsfresh中开发的方法的足迹。

  • 包装的设计是由乔治华盛顿大学的Mike Mann教授指导的。

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

推荐PyPI第三方库


热门话题
java FSReadOnlyChiveFileSystem异常   java增量和减量不起作用   java PigLatin语句转换器方法给出了“indexoutofboundsexception”错误等   java从使用布局的页面适配器中删除特定位置页面。刷卡   api查看java源代码有任何规定的方式吗?   快速查找表中的行的java算法   web服务单击将SOAP wsdl转换为JAXB java类   java后转换完成不工作   java访问文件并只提取带注释的方法,从而进一步处理它们   java使用JDBC从SQL INSERT获取序列   java ECLIPSE:构建失败   处理对命令行的读/写操作。exe Java   java遇到过早的文件结束异常   java unity使用Xamarin吗?   java之间的区别是什么:使用JFrame类中的getContentPane()和JRootPane中的getContentPane()?   用于Java正则表达式语法的正则表达式ANTLR语法   java hibernate。cfg。即使在运行mvn hibernate3:hbm2cfgxml时,也没有创建xml   eclipse如何将数据写入Java文件中的特定行号