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

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第三方库


热门话题
类似于C mktime()的Java函数?   java如何处理Cassandra中的竞争条件?   java如何从新对象调用字段   java如何从commons cli“获取”帮助字符串而不是“打印”   用于正则表达式更改的java Selenium IDE扩展或插件   java在没有EAR的客户端中创建EJB远程引用   java Jooq批记录插入   java Android SQLite:约束失败错误代码19   java位图变成彩色背景   java JFrame(全屏)背景色不变   java我如何执行Taurus junit?   apache tomcat服务器上的java 500内部服务器错误   获取页面信息时发生java NullPointerException   springboot中@oneToMany双向映射的java问题   java堆栈返回已删除的项   java Spring boot mvc按值验证枚举