北京54或国家80或CGCS2000转WGS84坐标系的程序实现方法

介绍 在工程测量中,经常使用的坐标系如北京54坐标系、国家80(也叫西安80)坐标系、CGCS2000坐标系。而在终端设备或定位平台中,一般使用WGS84坐标系。这样的情况下,就需要一种北京54、国家80、CGCS2000转WGS84坐标系的通用程序方法。 而我们使用的就是布尔莎七参数法来进行的程序转换。通过使用C++程序,从而得到平台需要的wgs84坐标。 布尔莎七参数 标准的七参数转换方法,使用X、Y、Z平移,X、Y、Z旋转,K尺度,这七个参数,在已知三个以上点的情况下,来计算七参数模型。 具体七参数计算过程,可参考COORD GM软件。 c++、java程序实现坐标转换的过程 c++、java的转换过程,主要依托的参数为七参数,以及原椭球坐标系以及目标椭球坐标系的长半轴、短半轴、扁率、中央子午线。在获取到原始坐标后,经过一系列的坐标转换算法,即可得到经北京54、国家80、CGCS2000坐标系到WGS84坐标系的坐标转换值。 C++代码示例 Point Trans::gauss_geodetic2plane(Point point, double a, double b,double f, int ZoneWide, int Lo) { //计算中央经线和带号 int ProjNo = 0; if (Lo == DEFFAULT_LONTITUDE)//未输入中央经线 { ProjNo = ((int)point.x) / 6 + 1;//带号 Lo = (ProjNo)* ZoneWide - ZoneWide / 2;//中央经线 } else{ ProjNo = (Lo + ZoneWide / 2) / ZoneWide; } double longitude1, latitude1, longitude0, X0, Y0, xval, yval; double e2, ee, NN, T, C, A, M, iPI; longitude0 = toRadians(Lo); longitude1 = toRadians(point.

因果学习介绍

目前数据驱动的方法大多是建立数据和标签之间的关联,但是这种关联可能是有偏见或者错误的,因果学习就是想加入知识,来消除这种偏见。 机器学习是在大量数据的基础上,应用一些数学理论,尽可能建立一个模型,去拟合这些数据的分布情况。这个模型就像是一个函数,当给模型输入了参数之后,就会生成符合上述数据分布的预测结果。 因果机器学习(CausalML)是将数据生成过程形式化为结构因果模型(SCM)的机器学习方法的总称。这使得人们可以对这一过程的变化的影响(即干预)和事后会发生什么(即反事实)进行推理。根据他们所解决的问题,我们将CausalML中的工作分为五组:(1)因果监督学习,(2) 因果生成模型,(3) 因果解释,(4) 因果公平,(5) 因果强化学习。对每一类方法进行了系统的比较,并指出了有待解决的问题。 那么为什么上述机器学习模型容易在数据分布变化时出现决策失误呢? 因为它可能学到了不具备泛化性能的关联性,相对I.I.D.(独立同分布)假设下的模型学习,这种训练环境和测试环境的数据分布不同的问题称为Non-I.I.D.或者OOD(Out-of-Distribution)。模型需要学到做出预测或判断的本质原因和规律,而非依赖于表面“看上去”的关联关系。人们已经发现标准的有监督学习方法,特别是深度学习方法对分布外样例的预测表现欠佳。若训练集中大部分“哈士奇”的图片都是暗背景而大部分“狼”的图片都是雪地背景,那对于处在雪地中的“哈士奇”的测试样例,模型会预测为“狼”。若对模型进行可视化可发现模型更关注于背景,因为在这样的数据集上,背景与前景物体具有很强的关联性,并且背景是一个比前景物体更有区分度的特征,但只有前景物体决定图片的标注。 希望模型能够学到类似于前景物体这样的特征进行预测。此目标可在因果关系理论下进行正式的描述。该理论是通过系统在干预(intervention)下的表现来定义因果关系的,即若通过干预改变变量 A 的值会改变变量 B 的值而干预 B 不会改变 A,那 A 就是 B 的因(cause),B 就是 A 的果(effect),记为 A→B。若强行改变一张图 x 的背景而维持前景物体不变,那这张图的标注 y 不应改变,而改变前景物体却会改变 y。所以研究员们希望模型学到的是标注 y 的因,称为“语义因子”(semantic factor)s,如前景物体,而相区别的是“多变因子”(variation factor)v,如图片背景。只有将 s 识别出来才能做好分布外预测(out-of-distribution prediction)。

亚信卸载-无需密码卸载

安装后,电脑性能受到影响,但是苦于没有密码卸载不掉… 1.打开注册表 win+R 32位的寻找路径为: HKEY_LOCAL_MACHINE/SOFTWARE/TrendMicroPC-cillinNTCorpCurrentVersionMisc 下的 Allow Unistall 64位的寻找路径为: HKEY_LOCAL_MACHINE /SOFTWARE/Wow6432Node/TrendMicro/PC-cillinNTCorp/CurrentVersion/Misc下的Allow Unistall 0改为1 2.更改完成后,在安全模式下可以直接打开控制面板,进入程序页面,找到亚信安全防毒墙网络版,选择卸载。会等待几分钟…

加粗、倾斜、下划线、删除线标签

加粗、倾斜、下划线、删除线标签 源代码 <strong> <strong>和<b>为加粗标签 <b> <em> <em>和<i>为倾斜标签 <i> <ins> <ins>和<u>为下划线标签 <u> <del> <del>和<s>为删除线标签 <s>

mac中pytorch使用

只有nvidia才需要cuda和cudnn python 3.6以上才支持新torch conda 创建环境失败 设置清华源 可能一:外网网速太慢造成的,换源 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --set show_channel_urls yes pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 可能二:先放弃下载python,只创建环境 平常常用指令conda create -n 名字 python=版本号 在这里我们用conda create -n 名字 在成功创建环境后在下载python conda install -c conda-forge python 可能三:报错PackagesNotFoundError: The following packages are not available from current channels 将conda-forge添加到搜索路径上conda config --append channels conda-forge torch安装 Pytorch 1.12版别现已支撑对Mac的M1 GPU支撑 (官网)查找指令 # MPS acceleration is available on MacOS 12.

树莓派 4 B 拨动开关控制风扇 Rasberry Pi 4 B Add Toggle Switch for the Fan

树莓派 4 拨动开关控制风扇 刚买了树莓派 4 B,顺带买了一个小风扇散热。 风扇两种模式,全速和静音模式,其实就是全速用5V的针,静音用3.3V的针。 风扇的一根线接3.3V 或 5V,另一根线接地。 树莓派的针分布图如下: 运行了一会儿发现树莓派插电时风扇就运作,手动关机后如果不断电风扇仍然在转。这就很不科学。 查了资料树莓派CPU正常运行温度在50度左右不需要风扇,只有在运行大型项目时,或者长时间运行才需要风扇。 我的意思是能不运行的时候就别转了,也不是很静音,也损耗风扇。 因为我是准备拿树莓派做一个个人PC,于是我决定给它加一个风扇开关。 需要:拨动开关 * 1 ,母对母线1, 公对母线1 按下图焊接开关: 然后就是把开关和风扇接在一起了,按下图接线: 电流从红线流入(我接的是3.3V),流过开关,再由红线流过风扇,从黑线流出接地。 给树莓派插上电,拨动开关就可以手动开关风扇了。 网上有很多程序温控风扇,都是基于树莓派开机的情况下,且需要特殊风扇。

【Python】Pandas通过索引的方式去重df[~df.index.duplicated()]

1.问题 在处理股票数据的时候,难免遇到去重的问题。对于以下数据,显然2020-01-04的数据重复了。 股票数据中,通常用date当成索引,一行数据的date应该都是唯一的。 import pandas as pd data = pd.DataFrame({'date': ['2020-01-04', '2020-01-04', '2020-01-05', '2020-01-06'], 'open': [102, 102,102, 105], 'close': [102, 102,102, 105]}).set_index('date') print(data) open close date 2020-01-04 102 102 2020-01-04 102 102 2020-01-05 102 102 2020-01-06 105 105 数据中2020-01-05的open和close与2020-01-04的是一样的,但date又不一样,因此这里不需要对2020-01-05的数据做去重处理的,只需要对2020-01-04的两条数据去重。 如果利用常规的去重方法 df.drop_duplicates(),就会遇到以下问题: a = data print(a.drop_duplicates()) open close date 2020-01-04 102 102 2020-01-06 105 105 返回的结果相当于把2020-01-05也当重复项做去重处理了。也就是使用 df.drop_duplicates() 方法,是针对于列做去重处理。因为2020-01-05的open和close与2020-01-04的是一样,所以前3条数据被当成重复性处理,就保留了重复数据中的第一条。然而这个结果并不是我们想要的。 正确是做法是对索引去重。 2.解决方法 对索引去重,也只需要用一行代码:df[~df.index.duplicated()] print(data[~data.index.duplicated()]) open close date 2020-01-04 102 102 2020-01-05 102 102 2020-01-06 105 105 这样的结果才是我们想要的。~df.

qml踩坑系列——Scrollview和mouseArea冲突

问题描述 编写多任务视图的过程中,滚动区域(ScrollView)需要使用鼠标事件,但是增加上鼠标事件后,滚动区域就不能滚动了。 原因分析: 因为增加了mouseArea(),滚动区域的大小是根据内部子组件的大小进行扩展的,如果超出滚动区域的宽度或高度,就会触发滚动功能,但是增加了mouseArea(),子控件的大小,并不会超过滚动区域,故不能滚动了 解决方案: 手动控制滚动区域的内容大小,不在让他自适应,如下: ScrollView{ id : scrollView x : 0 y : 0 contentWidth : 10000 contentHeight :10000 width : 1080 height: 1920 MouseArea{ anchors.fill : parent } } 控制contentWidth 或者contentHeight 大于width或者height 就可以即滚动,又可以使用鼠标事件 contentWidth:此属性保存内容宽度。 width:组件本身的宽度

PyCharm中如何竖着选中多行文本?

0. 前情提要 把pycahrm 更新到2020版本后 就不能使用Alt+鼠标左键了但是可以将将选择模式更改为矩形框选择 1. 目前的方法 1.1 快捷键法 shift+alt鼠标左键选择 1.2 鼠标中键法 加滚轮即可完成使用 1.3 右键菜单法 选中菜单竖向选择模式 即可竖向选择部分内容

MyBatis-Plus解决主键自增

MyBatis-Plus主键自增失败 1、先看错误 Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5c731754] 2022-12-05 21:05:55.322 ERROR 17476 --- [nio-8989-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException: ### Error updating database. Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Out of range value for column 'id' at row 1 ### The error may exist in com/baidu/mapper/SysAccountMapper.java (best guess) ### The error may involve com.baidu.mapper.SysAccountMapper.insert-Inline ### The error occurred while setting parameters ### SQL: INSERT INTO account ( id, datatime ) VALUES ( ?

pytorch-textclassification是一个专注于中文文本分类(多类分类、多标签分类)的轻量级自然语言处理工具包,基于pytorch和transformers,包含各种实验

pytorch-textclassification pytorch-textclassification是一个以pytorch和transformers为基础,专注于文本分类的轻量级自然语言处理工具包。支持中文长文本、短文本的多类分类和多标签分类。 目录 数据使用方式paper参考 项目地址 pytorch-textclassification: https://github.com/yongzhuo/Pytorch-NLU 数据 数据来源 所有数据集均来源于网络,只做整理供大家提取方便,如果有侵权等问题,请及时联系删除。 baidu_event_extract_2020, 项目以 2020语言与智能技术竞赛:事件抽取任务中的数据作为多分类标签的样例数据,借助多标签分类模型来解决, 共13456个样本, 65个类别;AAPD-dataset, 数据集出现在论文-SGM: Sequence Generation Model for Multi-label Classification, 英文多标签分类语料, 共55840样本, 54个类别;toutiao-news, 今日头条新闻标题, 多标签分类语料, 约300w-语料, 1000+类别;unknow-data, 来源未知, 多标签分类语料, 约22339语料, 7个类别;SMP2018中文人机对话技术评测(ECDT), SMP2018 中文人机对话技术评测(SMP2018-ECDT)比赛语料, 短文本意图识别语料, 多类分类, 共3069样本, 31个类别;文本分类语料库(复旦)语料, 复旦大学计算机信息与技术系国际数据库中心自然语言处理小组提供的新闻语料, 多类分类语料, 共9804篇文档,分为20个类别。MiningZhiDaoQACorpus, 中国科学院软件研究所刘焕勇整理的问答语料, 百度知道问答语料, 可以把领域当作类别, 多类分类语料, 100w+样本, 共17个类别;THUCNEWS, 清华大学自然语言处理实验室整理的语料, 新浪新闻RSS订阅频道2005-2011年间的历史数据筛选, 多类分类语料, 74w新闻文档, 14个类别;IFLYTEK, 科大讯飞开源的长文本分类语料, APP应用描述的标注数据,包含和日常生活相关的各类应用主题, 链接为CLUE, 共17333样例, 119个类别;TNEWS, 今日头条提供的中文新闻标题分类语料, 数据集来自今日头条的新闻版块, 链接为CLUE, 共73360样例, 15个类别; 数据格式 1. 文本分类 (txt格式, 每行为一个json): 1.1 多类分类格式: {"

【Python】要过滤掉两个list,两个list相减:Error: TypeError: unsupported operand type(s) for -: ‘list‘ and ‘list‘

1.问题 list1 = [2, 4] list2 = [1, 2, 3, 4, 5] list3 = list2-list1 print(list3) 要过滤掉在 list2 且在 list1 中的元素,如果直接 list2-list1,会报错: Traceback (most recent call last): File "E:/python_project/test.py", line 3, in <module> list3 = list2-list1 TypeError: unsupported operand type(s) for -: 'list' and 'list' 2.原因 python不支持像直接两个字符串相加 list1+list2 那样直接相减。 3.正确写法 [i for i in list2 if i not in list1] list1 = [2, 4] list2 = [1, 2, 3, 4, 5] list3 = [i for i in list2 if i not in list1] print(list3)

CDN(Content Delivery Network)内容分发网络

这个网络会有很多台边缘服务器(就是接近用户的服务器)提供服务 CDN就是帮服务器近距离给用户分发网页内容的 布置多台cdn服务器,分布在各个地方,监控这些cdn服务器的负载情况,如果某台服务器超载了,就会把用户的请求转移到没有超载的cdn服务器,这样就可以平均分配网络的流量 服务器对外都是一个相同的ip地址,如果这个ip地址收到了用户的请求以后,就会让距离用户最近的服务器来响应 cdn还有一个名字,叫做加速器。除了因为距离变近(途径的结点数目更少了)因此加载速度变快是远远不够的。cdn还会帮你把文件进行最小化或者压缩文档 注意以下两点: (1)不一定每个网站都需要用到cdn (2)有很多cdn服务商可以选择

java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver解决方案

🌟问题解析 此报错会出现在两种情况,有各自的解决方法。 如果在Java程序中报错,那么我们就参考方法1(单Java程序),错误演示: 如果你是在Tomcat中报错,那么我们可以参考方法2(Tomcat项目),错误演示: ✅方法1(对于单Java程序) 错误原因:其实就是程序没有安装JDBC驱动,对于Java程序来说我们只需要加入对应的jar包即可。当然也可以去官网下载对应的jar包,但是肯定是本方法更为方便了。 将下面的依赖添加到pom.xml的dependencies标签中,刷新pom.xml文件即可。程序会自动下载所需要的依赖到外部库。 <!--mysql驱动包--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.28</version> </dependency> 再次运行程序,错误即可消失 ✅方法2(对于Tomcat项目) 如果你是在使用JavaWeb的时候出错,那我们就需要将方法一中下载的jar包放入Tomcat的lib文件中。原因是运行Tomcat时,程序不会加载外部库,只会加载Tomcat之中的依赖。 我们可以在 IDEA的目录结构中找到外部库,并找到mysql-connector-java-xxxx.jar(如果你在方法一中已经下载了mysql-connector-java-xxxx.jar的话,没有的话就根据方法一下载即可),并且将此jar包复制。 复制jar包之后,粘贴放入我们Tomcat根目录下的lib目录即可 再次启动Tomcat运行程序,错误消失。 

ffmpeg生成图片视频脚本

#!/bin/bash output_folder=$1 ffmpeg -hwaccel cuda -hwaccel_output_format cuda -r 10 -i ${output_folder}/comb_%08d.png \ -vcodec h264_nvenc -y -threads 1 ${output_folder}/video.mp4

win7下装anaconda3

win7(旗舰版)装anaconda3, 最初装的是Anaconda3-2019.03-Windows-x86_64, 各种让人无语的错误,比如: 1)新建环境找不到安装的包; 2)各种conneting to kernel 后来换了个版本:Anaconda3-2020.02-Windows-x86_64.exe,就一路顺畅了

K8S - Pod 的概念和简介

1. POD的基本概念 Pod 是K8s 系统中可以创建(部署)和管理的最小单元。 Pod 里面可以包含多个容器(多实例),是一组容器的集合。 也就是讲K8S 不会直接管理容器 1个POD中的容器共享网络命名空间(共享ip) POD 是短暂的(可以被创建 迁移) 来自google的解析, POD的存在是为了覆盖container的细节 2. POD 存在的意义 创建容器使用docker, 1个docker 对应1个container, 一个container对应1个进程, 一个container运行1个程序, 是1个单进程的设计。Pod 是1个多进程的设计, 可以运行多个应用程序。 1 个POD可以有多个容器, 1个容器运行1个应用程序Pod 存在为了亲密性应用, ** 两个应用之间进行交互 (直接调用) ** 网络之间调用 (API), 如果不在同1个POD, 通常应用之间只能用ip调用, 如果在同1个POD, 可以用过127.0.0.1 和 socket直接调用 ** 两个应用需要频繁调用(例如普通App 和 数据库) 上图的Pause 表示POD里面必须存在的根容器 3 POD 的实现机制 通常POD的实现基于两种机制 分别是 共享网络共享存储 3.1 共享网络机制 我们知道, 在docker中各个容器之间是相互隔离的。 在K8S 中, 容器也可以用namespace 和 group进行隔离。 但是如果两个容器在同1个POD 或namespace 中, 它们是可以做到网络共享的。(在同1个Namespace中是网络共享的大前提) 下面介绍的是在POD中网络共享机制的实现: 3.1.1 POD中多个容器的网络共享 如下图, 在POD的初始化中, 会首先建立1个根容器, 这个根容器通常被称为 Pause, 也可以叫做info容器。

制作composer包提供sdk扩展

目录 1、初始化包 2、将代码推送到github远程仓库 3、为写好扩展包打上tag标签标记当前代码版本 4、将包发布到包管理平台 初始化包,生成 Creates a basic composer.json file in current directory composer init composer init 按照引导就可以生成了 , 详细的引导解释如下 This command will guide you through creating your composer.json config. # 1. 输入项目命名空间,我是按github账号名/仓库名 # 注意<vendor>/<name> 必须要符合 [a-z0-9_.-]+/[a-z0-9_.-]+ Package name (<vendor>/<name>) [root/test_composer]:yourname/projectname # 2. 项目描述 Description []:这是一个测试composer init 项目 # 3. 输入作者信息,直接回车可能出现如下提示,有的系统可以直接回车,具体为什么?这里不详细介绍 Invalid author string. Must be in the format: John Smith <john@example.com> # 3.1. 注意必须要符合 John Smith <john@example.com> Author [Alan.