SWM格式权重矩阵转换为二进制格式全过程分享

在进行空间统计实验过程中,经常涉及到空间权重矩阵的处理,有时候需要将ArcGIS生成的swm格式的权重矩阵转换为形如“0 1”的方阵格式。这里将我的办法整理出来。

1.用如下工具箱生成swm格式的权重矩阵

2.将swm格式的权重矩阵转换为dbf属性表

    

3.用excel打开dbf将其转换为txt文本文件

4.写程序转换格式并保存

代码如下:

 1 static void Main(string[] args)
 2         {
 3             //读取文件并转换格式
 4             StreamReader sr = File.OpenText("E:\\AcaDissertation\\Data\\weight_arc.txt");
 5             double[,] weights = new double[47, 47];
 6             while (sr.ReadLine() != null)
 7             {
 8                 string[] line = sr.ReadLine().Split(‘\t‘);
 9
10                 weights[int.Parse(line[0])-1, int.Parse(line[1])-1] = double.Parse(line[2]);
11             }
12             SaveMatrix(weights, "E:\\AcaDissertation\\Data\\weight_mat.txt");
13             Console.WriteLine("好了!");
14         }
15
16         // 保存矩阵到文件
17         public static void SaveMatrix(double[,] InMatrix, string OutFileName)
18         {
19             int row = InMatrix.GetLength(0), col = InMatrix.GetLength(1);
20             FileStream aFile = new FileStream(OutFileName, FileMode.OpenOrCreate);
21             StreamWriter sw = new StreamWriter(aFile);
22             for (int i = 0; i < row; i++)
23             {
24                 for (int j = 0; j < col; j++)
25                 {
26                     sw.Write("{0}{1}", InMatrix[i, j], " ");
27                 }
28                 sw.WriteLine();
29             }
30             sw.Close();
31         }

最后的最后,转换后的权重矩阵为:

时间: 2024-10-26 17:39:30

SWM格式权重矩阵转换为二进制格式全过程分享的相关文章

正则表达式实现将MM/DD/YYYY格式的日期转换为YYYY-MM-DD格式

正则表达式实现将MM/DD/YYYY格式的日期转换为YYYY-MM-DD格式的方法.分享给大家供大家参考.具体代码codego.net提供方法如下: <html> <head><title>正则表达式</title></head> <body> <a href="./">返回列表</a> <form action="<? echo $PHP_SELF; ?>&qu

电子书格式怎么在线转换为PDF格式

电子书格式怎么在线转换为PDF格式,现在很多朋友喜欢用PDF格式的电子书,因为其有纸质书的排版和格局,但实际生活中出现的最多的是TXT等格式的电子书,那如何将其进行转换成PDF格式的呢,下面就由小编来告诉大家转换的解决方案.步骤一:打开电脑进入浏览器内在百度首页搜索"迅捷PDF在线转换器"找到相对应的页面.(可以提前将电子书文件保存至桌面上)步骤二:进入到在线的页面后在首页内的导航栏上找到文档转换,并在下拉框内选择"电子书转PDF".步骤三:进入在线转换器的功能页后

优酷1080p的kux格式文件怎么转换为MP4格式?

直接使用优酷自己的FFMPEG解码! 格式为:"优酷ffmpeg.exe的安装地址" -y -i ".kux文件储存地址" -c:v copy -c:a copy -threads 2 ".mp4转码后的保存地址" 例如: "C:\Program Files (x86)\YouKu\YoukuClient\nplayer\ffmpeg.exe" -y -i "F:\电影\xxx乐队_1080p.kux" -

JS如何将CST格式的日期转换为制定格式String

<html> <body> <script type="text/javascript"> var d = new Date() dateFormat = function (date, format) { date = new Date(date); var o = { 'M+' : date.getMonth() + 1, //month 'd+' : date.getDate(), //day 'H+' : date.getHours(), /

H5浏览器支持播放格式:H264 AVCA的MP4格式,不能转换为mpeg-4格式,

原文地址:https://www.cnblogs.com/hmms/p/10268088.html

串口收发数据时字符、十六进制、二进制格式详细区分

在使用串口调试助手时发送和接收数据都是以字节 (Byte) 为单位,并且可以选择字符.十六进制.二进制三种收发格式 ,那么这三种格式究竟怎样区分呢? 首先我们来明确一个概念 :串口收发数据的单位 '' 字节 (Byte) '' ,   1Byte = 8 bits , 串口收发数据格式一般为  1bit起始位(一般为0) + 8bits 数据位(一字节) +1bit校验位(可有可无) +1bit结束位(一般为1) 下面逐一区分三种收发格式: (1) 十六进制:   由于1位十六进制数位宽为 4b

mariadb通用二进制格式安装

一.MariaDB安装介绍: 对于通用二进制格式的包,我们只需要解压缩后就能够使用数据库,听起来很容易,但必须要注意一些问题.二进制 格式的程序包是已经编译好的二进制程序,所以里边有很多脚本都是在固定的路径下执行的,所以安装过程中mysql这个路径必须安装在/usr/local目录下,并且目录名称必须叫mysql.如果不这样设置,一些脚本无法运行,更别提能成功安装了. Mariadb通用二进制格式相关文件说明 当获取到Mariadb通用二进制格式文件,解压后查看其文件如下:     [[emai

用shell脚本实现通用二进制格式mysql 5.5.28 x86_64的安装

用shell脚本实现通用二进制格式mysql 5.5.28 x86_64的安装 首先在网上用gfsoso.com来搜索下载mysql软件包mysql-5.5.28-linux2.6-x86_64.tar.gz,再用 winSCP把mysql上传到服务器上,上传位置可根据个人喜好,我个人一般放在服务器的/usr/local/src目录下. 此处我们是先命令行下实现一次,而后所有操作全部用shell脚本自动实现. 个人环境 centos 6.5 X86-64  所用空闲空间都做成了LVM. 准备工作

CentOS 7以通用二进制格式安装mariadb

系统环境:CentOS 7 1611(系统安装完成后自带有mariadb) mariadb版本:mariadb-5.5.56-linux-x86_64.tar.gz(Generic Linux) 下载地址:http://mirrors.neusoft.edu.cn/mariadb//mariadb-galera-5.5.56/bintar-linux-x86_64/mariadb-galera-5.5.56-linux-x86_64.tar.gz 1.下载通用二进制程序并展开 [[email p