Python GDAL使用1
数据驱动 通过gdal.GetDriverCount()获取GDAL支持的驱动个数,通过gdal.GetDriver()可以获取驱动,这个函数的参数是驱动的索引,不同版本获取的驱动序号可能不同,所以使用gdal.GetDriverByName()函数来获取指定的驱动。 from osgeo imp...
matlab密度散点图
img1 = readgeoraster("Z:\样例数据\1011\NDVI\FY4B-_AGRI--_N_DISK_1330E_L1-_FDI-_MULT_NOM_20221011060000_20221011061459_1000M_V0001_unac_NDVI.tif"...
Python 目录操作
Python创建路可以通过os.mkdir和os.makedirs,其中mkdir支持创建单层目录,父目录不存在时会报错,os.makedirs支持创建多层目录。 函数原型os.makedirs(name, mode=0o777, exist_ok=False)参数说明name:你想创建的目录...
C# 元组
元组较灵活,可以使用Tuple泛型创建,这里不多说。只介绍更方便的方式。 //将元组赋给单独声明的变量 (string name, string gender, double age) = ("FXPLL1", "male", 25); textBox1.Text = "sample1:" + n...
.NET Core 3.1序列化与反序列化JSON
.NET Core 3.1和3.0引入了System.Text.Json<span style=”color: #171717; font-family: SFMono-Regular, Consolas, “Liberation Mono”, Menlo, Courier, monospac...
GDAL使用(六)
矢量数据的读取与栅格数据的读取类似,但矢量数据定位明显,属性隐含,几何形状和属性要分开读取。基本流程如下:注册驱动。使用GDALAllRegister函数。打开数据集。使用GDALOpenEx函数。打开图层。可依据图层名字和图层的索引进行获取,使用GDALDataset::GetLayer和GDAL...
数值微分法(DDA)绘制直线
数值微分法(Digital Differential Analyzer)直接从直线的微分方程生成直线。详细的原理见以下链接:https://blog.csdn.net/weixin_43751983/article/details/106503634这里直接用C#实现了,用的是计算机图形学基础这本书...
C# IProgress接口汇报进度
使用IProgress接口来实现进度的汇报,使用CancellationToken类型的参数实现取消操作。IProgress接口中只有一个方法,Report方法,用于报告进度更新。Progress类实现了这个接口,这里通过传递委托的方式来更新控件进度。通过CancellationTokenSourc...
GDAL使用(五)
在之前说的GDALWarp.exe程序的参数中有个校正选项,[-order n | -tps | -rpc | -geoloc],这里说一下geoloc校正。这里的内容还是参考李民录老师的书以及GDAL官方手册内容。geoloc校正类似于ENVI的GLT校正,ENVI中就是建立一个地理查找表,通过地...
GDAL使用(四)
接上面,可以使用exe工具实现同样的功能。这个工具详情如下:gdalwarp [–help-general] [–formats] [-s_srs srs_def] [-t_srs srs_def] [-ct string] [-to “NAME=VALUE”]* [-novshiftgrid] &...
GDAL使用(三)
GDALWarp的功能比较强大,可用于影像投影/重投影、图像镶嵌、重采样、规则裁切、图像校正等。GDALWarp API定义在头文件gdalwarper.h中。主要有两部分构成:GDALWarpOptions和 GDALWarpOperation如字面意思,GDALWarpOperation主要用来...
GDAL使用(二)
本篇说一下CreateCopy()和Create()CreateCopy()是从一个源数据拷贝到一个新的数据中。有关说明写到了代码的注释中。C++代码和Python代码实现的功能是一致的。C++代码:#include <iostream> #include &quo...
GDAL使用(一)
先开个坑,关于配置什么的有空再写。这里的代码大多参考官网的教程,可能略有改动。下面的代码有打开数据、读取栅格相关信息、读取栅格数据、判断栅格驱动是否支持Create()和CreateCopy()等功能。C++代码:#include <iostream> #include “gdal_pr...
C#解析JSON
首先使用nuget搜索json,如下图选择第一个包安装。然后引用命名空间 using Newtonsoft.Json;以下面的JSON文件为例子解析:{"page":1,"results":[ { "adult&qu...
C# 多线程(2)
Thread类中的join方法:微软官方解释:Join 一个同步方法,该方法阻止调用线程 (即,调用方法的线程) ,直到 Join 调用方法的线程完成。 使用此方法可以确保线程已终止。using System; using System....
C语言 rename
在<stdio.h>头文件下以下内容来自:http://www.cplusplus.com/reference/cstdio/rename/?kw=renamerenameint rename ( const char * ol...
字节序问题
前阵子读取一个文件,在读取的时候按照文件的描述逐字节读取,但是这个文件的文件头部分数据是分大小端的,这就牵扯到了大小端的转换问题,这里要描述一下字节序。计算机数据存储有两种字节优先顺序:高位字节优先(称为大端模式)和低位字节优先(称为小端模式)。大端模式,是指数据的高字节保存在内存的低地址中,而数据...
C语言qsort简单使用
qsort函数位于stdlib.h头文件里。是用来排序的函数,函数原型如下:void qsort(void *ptr, size_t count, size_t size, int (*comp)(const void *, const void *));四个参数:ptr:指向待排序数组的指针cou...
C语言结构体
C语言的结构(struct)是一种复杂的数据类型,可以包含多种数据类型,基本类型都能包含,但是不能包含函数,这是和C++中的结构不同的地方,但是可以包含函数指针,但是这也并不矛盾,因为本身指针指向的是一个地址,也是一个变量。下面是结构的定义的示例:struct Name {  ...
C语言字符串换行连接
有时候遇到一个字符串太长一行放下不好看的情况,可以使用换行连接:一是使用 符号,如下所示:char* testString = “AAA BBB”; //不要这样写 //char* testString = “AAA // BBB”;注意换行后的内容一定要顶到格子的最前面,否则会把前面的空格也算上...