原文:http://www.cnblogs.com/leonwen/p/5158947.html

  该算法由MatLab移植而来(具体参见上一篇博文)。但是最终输出结果却和MatLab不一致,经排查发现在进行调用两者内部函数eig进行求解特征值和特征向量的时候,两者特征值都一致,但是特征向量却不同。

  可是,从理论上感觉也说得过去,因为特征向量本来就具有不唯一性。最让人费解的是,就算两者特征向量不一致,可为什么使用PCA的结果却反差很大呢?感觉上来看,好像是Python的不准确性更大一点。

  代码如下:

# -*- coding: utf-8 -*-
"""
Created on Tue Jan 12 21:45:57 2016

@author: LeonWen
""" import os from PIL import Image
from numpy import *
from pylab import * path = r'D:\Projects\PythonProj\ImageProcessing\2012'
sst_dir = os.listdir(path)
file_len = len(sst_dir) sst_list = [] for i in range(file_len):
str = path + '\\' + sst_dir[i]
#txt = open(str).read()
sst_list.append(str) immatrix = [] for im in sst_list:
text = loadtxt(im)
immatrix.append(text) immatrix = array(immatrix) # 显示输出
figure()
gray()
for i in range(file_len):
subplot(3,4,i + 1) pic = immatrix[i].reshape(180,360)
pic = pic[::-1]
# picshow = rot90(pic,4)
imshow(pic)
colorbar() show() # 转换成样本总体
X = immatrix.T
# 获取要本大小
m,n = X.shape[0:2] # 取得各个样本均值
meanVal = mean(X,axis = 0)
#tempMean = tile(meanVal,(64800,1)) # 样本矩阵去中心化
X = X - tile(meanVal,(64800,1)) # 计算协方差
S = dot(X.T,X) / (m - 1) # 计算特征值eg和特征向量Ev
eg,Ev = linalg.eig(S)
#eg1,Ev1 = linalg.eigh(S) # 这两种算法存在排序区别,eigh返回结果由小到大 # 计算新的成分
Y = dot(immatrix.T,Ev) figure()
gray()
for i in range(n):
subplot(3,4,i + 1)
out = Y[:,i] outpic = out.reshape(180,360)
outpic = outpic[::-1]
imshow(outpic)
colorbar() show()

  结果显示:

原始数据显示

PCA主成分分析结果输出

  可能是我自己的原因吧,正在排查,哪位大神指导还望课指导鄙人一下~先就此谢过~O(∩_∩)O~

Python遥感数据主成分分析的更多相关文章

  1. 《零起点,python大数据与量化交易》

    <零起点,python大数据与量化交易>,这应该是国内第一部,关于python量化交易的书籍. 有出版社约稿,写本量化交易与大数据的书籍,因为好几年没写书了,再加上近期"前海智库 ...

  2. python和数据科学(Anaconda)

    Python拥有着极其丰富且稳定的数据科学工具环境.遗憾的是,对不了解的人来说这个环境犹如丛林一般(cue snake joke).在这篇文章中,我会一步一步指导你怎么进入这个PyData丛林. 你可 ...

  3. 用 Python 排序数据的多种方法

    用 Python 排序数据的多种方法 目录 [Python HOWTOs系列]排序 Python 列表有内置就地排序的方法 list.sort(),此外还有一个内置的 sorted() 函数将一个可迭 ...

  4. Aster及其它遥感数据下载地址

    免费下载TM,ETM的网址,速度还行,本人下载过, http://glcfapp.umiacs.umd.edu 还有一个是下载其他数据的,也可以去看看免费下载·遥感数据http://daac.gsfc ...

  5. 利用 keras_proprecessing.image 扩增自己的遥感数据(多波段)

    1.keras 自带的 keras_proprecessing.image 只支持三种模式图片(color_mode in ['grey', 'RGB', 'RGBA'])的随机扩增. 2.遥感数据除 ...

  6. python爬虫+数据可视化项目(关注、持续更新)

    python爬虫+数据可视化项目(一) 爬取目标:中国天气网(起始url:http://www.weather.com.cn/textFC/hb.shtml#) 爬取内容:全国实时温度最低的十个城市气 ...

  7. python调用数据返回字典dict数据的现象2

    python调用数据返回字典dict数据的现象2 思考: 话题1连接:https://www.cnblogs.com/zwgbk/p/10248479.html在打印和添加时候加上内存地址id(),可 ...

  8. python调用数据返回字典dict数据的现象1

    python调用数据返回字典dict数据的现象1 思考: 可以看到这两种情况,区别在于构造函数make()里赋值给字典dict的方式不同.使用相同的调用方式,而结果却完全不同.可以看到第二种情况才是我 ...

  9. python 小数据池,is and "==",decode ,encode

    一:小数据池 1.python运行中的缓存: 2.目的:缓存我们字符串,整数,布尔值.在使用的时候不需要创建过多的对象 3.python 缓存数据:缓存:int, str, bool.         ...

随机推荐

  1. Kafka关键参数设置

    生产环境中使用Kafka,参数调优非常重要,而Kafka参数众多,我们的java的Configuration代码中,经常设置的参数如下: Properties props = new Properti ...

  2. mybatis批量更新出现he error occurred while setting parameters

    当你更新一条时,不会发生问题,但是执行多条就出现了错误原因是mysql 配置jdbc:driver 应该添加&allowMultiQueries=trueurl:jdbc:mysql://lo ...

  3. 如何在点击 a 标签的 onclick 时间时,不触发 window.onbeforeunload 事件

    如题! 直接贴代码了: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...

  4. Winform中设置ZedGraph鼠标滚轮缩放的灵敏度以及设置滚轮缩放的方式(鼠标焦点为中心还是图形中心点)

    场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  5. 重温CLR(十七)程序集加载和反射

    本章主要讨论在编译时对一个类型一无所知的情况下,如何在运行时发现类型的信息.创建类型的实例以及访问类型的成员.可利用本章讲述的内容创建动态可扩展应用程序. 反射使用的典型场景一般是由一家公司创建宿主应 ...

  6. Python分页

    # -*-coding:utf-8-*- # Author:Ds from django.utils.safestring import mark_safe from django.http.requ ...

  7. Photoshop CC 2020 (PS 2020)改变与新功能

    Adobe Photoshop CC 2020中文版新增相机防抖动功能.CameraRAW 功能改进.图像提升采样.属性面板改进.Behance集成等功能,以及同步设置和其他更多有用的功能.ps202 ...

  8. QT4.8.7和VS2010环境搭建及使用

    (一)环境搭建 首先下载QT4.8.7的安装包.QT Addin 1.11插件和VS2010安装包.第一步:安装好VS2010第二步:安装QT4.8.7(qt-opensource-windows-x ...

  9. ptrace函数深入分析

    ptrace函数:进程跟踪. 形式:#include<sys/ptrace.h> Int ptrace(int request,int pid,int addr,int data); 概述 ...

  10. Vue实战狗尾草博客管理系统第一章

    Vue实战狗尾草博客后台管理系统第一章 这里准备采用的技术栈为:vue全家桶+element-ui 这里因为是后台管理系统,没有做SSR的必要.所以这里就采用前后端分离来昨晚这个项目~ 项目搭建 vu ...