pyside6
未读需求pyside6将图片资源转为py格式, 是为了打包为exe的时候不丢失图片文件
步骤新建img.qrc文件,例子如下:
<RCC>
<qresource prefix="pic">
<file>icon.jpg</file>
</qresource>
</RCC>
在img.qrc同名目录下,存在icon.jpg
在这个目录下,进入命令行输入
pyside6-rcc img.qrc -o img.py
在该目录下,生成一个img.py文件
在pyside6的主程序中调用图片资源
最后的界面如下:
某些地理空间数据格式很常见。但有些并不常见。笔者汇总 GIS 文件格式:
矢量 GIS 文件格式
矢量数据不是由像素网格组成的。相反,矢量图形由顶点和路径组成
矢量数据的三种基本符号类型是点、线和面(面)。这些GIS文件格式包含矢量数据。
文件类型
后缀
描述
Esri Shapefile
.SHP,.DBF,.SHX
到目前为止,shapefile 是最常见的地理空间文件类型。所有商业和开源都接受 shapefile 作为 GIS 格式。它无处不在,已成为行业标准。SHP文件必须包含三个文件,这些文件是构成 shapefile 所必需的。三个必需的文件是:1.SHP 是特征几何。2.SHX 是形状索引位置。DBF 是属性数据。
GeoJSON
.GEOJSON.JSON
GeoJSON 是一种使用 JavaScript 对象表示法 (JSON) 对地理数据结构(如点、线和多边形)进行编码的格式。它是在线 Web 制图应用程序最常见的开放标准格式之一。
Geography Markup Language (GML)
.GML
GML 以文本形式存储地理实体(要素 ...
python
未读在项目开发中,我们有时会引入一些包,后续由于种种原因,并没有 import 到项目中。如果在部署到时候使用 pip freeze,则会将这些并未引入到包也列到 requirements 中,而实际这些包是不需要的。
pipreqs 这个包就可以解决这个问题,它会分析项目中的代码,只列出被导入了的包。使用方法:
pip install pipreqs
pipreqs --encoding=utf-8-sig your_project_path --force
pipreqs 会生成 requirements.txt 到你分析的项目根目录中,与 pip freeze 生成的文件格式一致,可以使用 pip install -r requirements.txt 安装。
matplotlib==3.5.0
numpy==1.22.4
opencv_contrib_python==4.5.4.60
opencv_python_headless==4.5.5.64
Pillow==8.3.2
torch==1.9.0+cpu
torchvision==0.10.0
tqdm==4.66.1
列出 ...
python
未读读取tif文件正常来说,读取tif文件,使用gdal库就能解决了。
gdal库在遥感行业过于强大、简单、易用,以至于很多商业软件的底层也调用了gdal。
平常在python环境下使用gdal库对tif文件进行读写是很简单的,大佬们都把函数、接口封装得很好,咱们直接调用对应的API就OK了。
常用的语句如下:
from osgeo import gdal # 导入gdal
tif_file = r'xxx.tif' # 待读取的tif文件
ds = gdal.Open(tif_file) # 调用gdal的接口,ds是gdal的对象
array = ds.ReadAsArray() # 这个对象中有ReadAsArray方法
以上四句语句,把tif_file全部读取在内存里。
不使用gdal读取tif文件为什么会有这个奇怪的需求呢?
因为…
我有个朋友,他在linux因为没有linux的权限,安装不了 gdal。
这个朋友肯定不是我。
所以只能通过其他方法,把tif文件读取到内存里。
搜索一番,发现有2种方法可以成功实现这个需求。另外第2种方法只能实现部分需求。
skim ...
地理坐标系一般是指由经度、纬度和相对高度组成的坐标系,能够标示地球上的任何一个位置。经度和纬度常合称为经纬度,把球面上的经纬度显示在平面地图上需要采用某种地图投影
地理坐标系由于地面高低的不同和地球形状的不正规,天体测量所得的信息不足用于明确地计算地理位置。一般采用某个标准的大地测量系统所规定的地理坐标系统,目前最常用的标准是WGS84,它被卫星导航系统如美国GPS、中国的北斗导航系统使用。
投影坐标系
投影坐标系最出名的墨卡托投影,这里不过多讨论。
需求现在有一份栅格影像tif文件,需要把这份栅格文件去除投影坐标,变为地理坐标。准确地说是,让这景tif的坐标系从GCS2000 变为WGS84 。
代码#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2023/12/5 14:40
# @File : reprojection.py
# 栅格数据可以重投影,但比矢量数据投影更复杂。
# 栅格数据需要处理栅格数据中像元会弯曲和移动的事实,一对一的映射并不存在
# 通常用最近邻域插值法、双线性插值和三次卷积插值法进行 ...
需求现在有一份SHP文件,需要把这份矢量文件制作为深度学习的标签。这时候第一个步骤是:把矢量栅格化。
代码#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2023/11/27 10:18
# @File : shp_clip_img.py
from osgeo import gdal
import os
# 根据shp 裁剪影像
def clip_image_by_shp(input_file, output_file, clip_shape, nodata=0):
'''
@todo 根据shp 裁剪影像
@param shp_file: shp file
@param img_file: image file
@param outpath: output path
@return:
'''
outpath = os.path.dirname(output_file)
if os.path.exists(outpath):
...
python
未读为什么要使用多个版本的python?前几天想研究insar,发现了有个第三方库pygmtsar。在pip insatll pygmtsar 完成后,测试一下import pygmtsar 语句,竟然报错。
搜索一遍后,发现是 distributed这个库不支持python3.9.1。
简单的解决办法是把python的版本升级。但是升级是不可能升级的,升级了其它库是不是得重新装。
多版本python的windows10 环境于是不如多下载一个python版本。
安装好后,把python.exe复制粘贴,把复制的文件改名为python311.exe。
把D:\py311 添加到系统环境变量。
把D:\py311\Lib\site-packages 添加到系统环境变量。
在终端/cmd命令行输入
python311
测试完成。
进入D:\py311\Scripts,把pip.exe改名为pip311.exe
为什么会用虚拟环境?作为一个使用python开发过大型项目的同学,一定会碰到python库的版本依赖。
例如 直接依赖:
A项目:使用 django 2.2
B项目:使用 ...
GADM: 全球行政区划数据库GADM主页:https://gadm.org/
GADM,全称Database of Global Administrative Areas,是一个高精度的全球行政区划数据库。其包含了全球所有国家和地区的国界、省界、市界、区界等多个级别的行政区划边界数据。
警告GADM提供的中国国界数据不符合中国的领土主张,省界、市界、区界等数据也不一定是最新的版本。在正式刊物中发表使用此类数据的图件时需格外谨慎。
数据下载GADM提供了两种下载方式:
下载全球所有国家和地区的所有数据 https://gadm.org/download_world.html
按国家下载 https://gadm.org/download_country.html
由于全球数据量巨大,建议根据需要按照国家下载数据。
需要说明的是,GADM 中对country 的定义为“any entity with an ISO country code”。因而如果想要下载完整的中国数据,实际上需要下载China、Hong Kong、Macao和Taiwan 四个数据。
由于GADM提供的中国国界数 ...
1问题
java的版本、编译的环境
解决办法
Maven >= v3.2.5, recommended 3.9.2
Java JDK = v11 (Any of the available OpenJDK distributions should work).
编译的环境是window 10
2问题
netcdfAll-5.3.3.jar 太大了,mvn下载时失败。
解决办法
单独从web下载netcdfAll-5.3.3.jar
然后在命令行输入
mvn install:install-file -Dfile=文件的绝对路径
该解决办法失败
3问题
mvn clean install
通不过测试TEST。
使用Maven打包的时候,单元测试有可能导致打包失败,而且单元测试比较费时间,会减慢打包速度。一般需要在打包时跳过单元测试。mvn clean install -Dmaven.test.skip=true完成对snap-engine的编译解决办法
</table
kml格式是一种在GOOGLE地图浏览器中用于交换地理数据的文件。它基于XML,并定义了一些TAG用于规定地理数据的显示方式。KML可用于定义的地理特征包括地点、描述、叠层、路径和多边形等。
实际工作中我们拿到的矢量数据格式大部分是shp格式的文件,如果需要在谷歌软件或者其他第三方软件中使用的时候,有时候需要转换为kml格式,便于使用。在《QGIS中如何将kml转换为shp文件》一文中介绍了如果将kml文件转化为shp文件,参考该文章也很容易实现shp转kml格式,当然借助ARCGIS强大的工具箱也可以实现该方法。
本文介绍基于ogr2ogr工具的转换方法。在进行各类GIS文件格式转换的时候,使用ogr2ogr工具可以实现dxf、shp、kml等很多种格式之间的转换。
一、ogr2ogr工具安装与启动。工具的安装与启动可以参考文章《借助ogr2ogr工具实现SHP文件编码转换》、《GDAL的安装与使用》。
二、shp文件转kml格式。在命令行界面输入“ogr2ogr -f “KML” +转换后kml格式文件 +需要转换的shp文件。
为什么要转为KML?







