verde生成网格坐标

news2024/9/24 9:24:11

文章目录

    • 网格坐标
    • 区域调整

Verde是Python用于地理空间数据处理的一个库,由于采用了一些机器学习的方法,所以除了科学计算三件套之外,还需要基于sklearn模块。考虑到依赖关系,这里比较推荐用conda安装。

conda install verde --channel conda-forge

网格坐标

通过函数grid_coordinates可以创建一个网格坐标,其功能与numpy中的meshgrid相似,示例如下

import matplotlib.pyplot as plt
import verde as vd

# 分别是西、东、南、北
W, E, S, N = 0, 1000, 0, 1000
ew, ns = vd.grid_coordinates((W, E, S, N), spacing=100)
padded = vd.pad_region((W, E, S, N), pad=50)

print(ew.shape, ns.shape)
# (11, 11) (11, 11)
print(padded)
# (-50, 1050, -50, 1050)

其中,grid_coordinates用于生成网格,(W, E, S, N)表示网格范围,是一个矩形,spacing为网格间距,当输入为一个整型时,表示网格形状为正方形。其输出ew和ns分别代表东西、南北方向的网点坐标。

pad_region会在(W, E, S, N)外侧伸展pad尺寸。

下面绘制这个网格,此图来自于官网,但和官网相比,对代码进行了一点精简。

def drawGrid(W,S,E,N,ew,ns,padded,ax,**kwargs):
    ax.vlines(ew[0], ymin=S, ymax=N, linestyles="dotted")
    ax.hlines(ns[:, 1], xmin=E, xmax=W, linestyles="dotted")
    ax.scatter(ew, ns, **kwargs)
    plt.xlim(padded[:2])
    plt.ylim(padded[2:])

fig = plt.figure()
ax = fig.add_subplot()
ax.add_patch(
  plt.Rectangle((W, S), E, N, fill=None, label="Region Bounds"))

drawGrid(W,S,E,N,ew,ns,padded,ax,
    label="Square Region Grid Nodes",
    marker=".", color="black", s=100)

plt.xlabel("east-west")
plt.ylabel("sourth-north")
plt.legend(loc="upper center", bbox_to_anchor=(0.5, 1.15))
plt.show()

在这里插入图片描述

区域调整

grid_coordinates函数中有个参数adjust,用于参数调整,提供region和spacing两种选项,下面为其示例。

region_ew, region_ns = vd.grid_coordinates(
    (W, E, S, N), spacing=300, adjust="region")

spacing_ew, spacing_ns = vd.grid_coordinates(
    (W, E, S, N), spacing=300, adjust="spacing")

plt.figure(figsize=(6, 6))
ax = plt.subplot(111)
ax.add_patch(
  plt.Rectangle((W, S), E, N, fill=None, label="Region Bounds"))

drawGrid(W,S,E,N,region_ew,region_ns,padded,ax,
    label="Adjusted Region Grid Nodes",
    marker=">", color="blue", alpha=0.75, s=100)

drawGrid(W,S,E,N,spacing_ew,spacing_ns,padded,ax,
    label="Adjusted Spacing Grid Nodes",
    marker=">", color="orange", alpha=0.75, s=100)

plt.xlabel("Easting")
plt.ylabel("Northing")
plt.legend(loc="upper center", bbox_to_anchor=(0.5, 1.18))
plt.show()

效果如下

在这里插入图片描述

其中,spacnig_ew为

[ 0. 333.33333333 666.66666667 1000 0. 333.33333333 666.66666667 1000 0. 333.33333333 666.66666667 1000 0. 333.33333333 666.66666667 1000 ] \begin{bmatrix} 0. & 333.33333333& 666.66666667&1000\\ 0. & 333.33333333& 666.66666667&1000\\ 0. & 333.33333333& 666.66666667&1000\\ 0. & 333.33333333& 666.66666667&1000 \end{bmatrix} 0.0.0.0.333.33333333333.33333333333.33333333333.33333333666.66666667666.66666667666.66666667666.666666671000100010001000

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1404073.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第二节 K8S 的架构

第二节 K8S 的架构 K8S 架构图如下: 官方文档: https://kubernetes.io/docs/concepts/architecture/ kube-api-server 是集群的核心, 是k8s中最重要的组件, 因为它是实现声明式api的关键, 整个集群的入口,所有请求都要经过它, api接口服务. kubernetes…

Linux 快速构造大数据文件

文章目录如下 1. 如何生成数据文件 2. 使用 yes 命令构造数据 2.1. 基本用法 2.2. 构造数据文件 3. 使用 awk 命令构造数据 3.1. 基本用法 3.2. awk 循环输出 3.3. awk 指定分隔符 3.4. awk 随机数 3.5. awk 随机字符 3.6. awk 构造数据 4. 总结 1. 如何生成数据文…

【剑指offer】重建二叉树

👑专栏内容:力扣刷题⛪个人主页:子夜的星的主页💕座右铭:前路未远,步履不停 目录 一、题目描述1、题目2、示例 二、题目分析1、递归2、栈 一、题目描述 1、题目 剑指offer:重建二叉树 给定节…

opencv#27模板匹配

图像模板匹配原理 例如给定一张图片,如上图大矩阵所示,然后给定一张模板图像,如上图小矩阵。 我们在大图像中去搜索与小图像中相同的部分或者是最为相似的内容。比如我们在图像中以灰色区域给出一个与模板图像尺寸大小一致的区域,…

LeetCode 48 旋转图像

题目描述 旋转图像 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1: 输入:matrix [[1,2,3],[4…

Java-泛型与通配符

泛型基础 泛型示例 泛型的作用 泛型的语法 注意事项 1.泛型只能用引用类型实例化而非基本类型 自定义泛型 自定义泛型类 2中数组不能初始化是因为不知道要开辟多大的空间 3 类加载是会加载静态方法 此时泛型的具体类型并没有被确定 因为对象没有被 声明或实例化 自定义泛…

linux的安装配置

文章目录 1.centos7安装2.如何进行一个网络的开启3.客户端Xshell和Xftp的一个使用4.换源 1.centos7安装 1.我是在虚拟机里面重装了一个liunx系统,首先我们新建一个虚拟机 2.前面东西都不需要我们进行一个选择,到图中的这一步我们选择一个liunx,版本的话我们选择一个…

读AI3.0笔记04_视觉识别

1. 两次飞跃 1.1. ConvNets是当今计算机视觉领域深度学习革命的驱动力 1.1.1. 20世纪80年代便由法国计算机科学家杨立昆提出,而他则是受到了福岛邦彦提出的神经认知机(Neocognitron)的启发 1.2. ImageNet竞赛被看作计算机视觉和人工智能进…

zero w配置C++ opencv csi 摄像头

经过一天半的摸索,踩过了很多坑,这里记录一下 1、系统网站:https://www.raspberrypi.org/downloads/raspberry-pi-os/ 由于zero w 性能不太行,我下载的是: 2、系统烧录: 这里的坑有两个,一个…

【深度学习】BasicSR训练过程记录,如何使用BasicSR训练GAN

文章目录 两种灵活的使用场景项目结构概览简化的使用方式 项目结构解读1. 代码的入口和训练的准备工作2. data和model的创建2.1 dataloader创建2.2 model的创建 3. 训练过程 动态实例化的历史演进1. If-else判断2. 动态实例化3. REGISTER注册机制 REGISTER注册机制的实现1. DAT…

React Router v6 改变页面Title

先说正事再闲聊 1、在路由表加个title字段 2、在index包裹路由 3、在App设置title 闲聊: 看到小黄波浪线了没 就是说默认不支持title字段了 出来的提示, 所以我本来是像下面这样搞的,就是感觉有点难维护,就还是用上面的方法了 …

Labview for循环精讲

本文详细介绍Labview中For循环的使用方法,从所有细节让你透彻的看明白For循环是如何使用的,如果有帮助的话记得点赞加关注~ 1. For循环结构 从最简单的地方讲起,一个常用的for循环结构是由for循环结构框图、循环次数、循环计数(i)三部分组成…

人大金仓数据库授权文件过期解决

一台用于测试的人大金仓数据库访问失败。 登录后发现服务停了。 使用命令行启动,提示服务过期。 查网上资料,说替换原有文件可以解决。 于是去官网下载一个新的,替换掉原来的授权文件。 再次启动数据库,还是提示授权文件过期。…

代码中遇到的问题

编译器错误消息: CS1061: default_aspx 不包含 GridView1_SelectedIndexChanged 的定义,并且找不到接受类型为default_aspx的第一个参数的可访问扩展方法GridView1_SelectedIndexChanged(是否缺少 using 指令或程序集引用&#xf…

设计模式—行为型模式之备忘录模式

设计模式—行为型模式之备忘录模式 备忘录(Memento)模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。该模式又叫快照模…

C++ //练习 2.35 判断下列定义推断出的类型是什么,然后编写程序进行验证。

C Primer(第5版) 练习 2.35 练习 2.35 判断下列定义推断出的类型是什么,然后编写程序进行验证。 const int i 42; auto j i; const auto &k i; auto *p &i; const auto j2 i, &k2 i;环境:Linux Ubuntu&#x…

ThreeJS快速入门指南

Three.js 介绍 Three.js 是一个开源的应用级 3D JavaScript 库,可以让开发者在网页上创建 3D 体验。Three.js 屏蔽了 WebGL的底层调用细节,让开发者能更快速的进行3D场景效果的开发。 Three.js的开发环境搭建 创建目录并使用 npm init -y 初始化 pack…

Laravel 10.x 里如何使用ffmpeg

原理上很简单,就是使用命令行去调用ffmpeg,然后分析一下输出是不是有错误。 安装 首先安装 symfony/process,主要用于包装一下,用来代替 exec, passthru, shell_exec and system 。 composer require symfony/process composer…

像素图片在网页中很模糊怎么办?输入这个样式

像素图片在网页中很模糊怎么办?输入这个样式 image-rendering: pixelated;输入前 输入后

java数据结构与算法刷题-----LeetCode378. 有序矩阵中第 K 小的元素

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 解题思路 已知矩阵相对有序,可以用二分搜索,不过和…