python根据两组GPS经纬度excel坐标数据,计算其中一组坐标点方圆1000米内另一组坐标点的个数

news/2024/11/17 15:56:48/
# -*- coding: utf-8 -*-
"""
Created on Wed Jul  7 14:57:44 2021
@author: Administrator
"""
import xlrd
import math
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt#将excel的两列转化为二个列表
worksheet = xlrd.open_workbook(u'C:/Users/Administrator/Desktop/data1.xlsx')
sheet_names= worksheet.sheet_names()
#print(sheet_names)
for sheet_name in sheet_names:sheet = worksheet.sheet_by_name(sheet_name)rows = sheet.nrows # 获取行数cols = sheet.ncols # 获取列数,尽管没用到all_content1 = []for i in range(1,rows) : #excel第一行是列名,从第二列开始取数cell1 = sheet.cell_value(i, 0) # 取第一列列数据try:all_content1.append(cell1)except ValueError as e:pass
for sheet_name in sheet_names:sheet = worksheet.sheet_by_name(sheet_name)rows = sheet.nrows # 获取行数cols = sheet.ncols # 获取列数,尽管没用到all_content2 = []for i in range(1,rows) :cell2 = sheet.cell_value(i, 1) # 取第二列列数据try:all_content2.append(cell2)except ValueError as e:pass    
length1=len(all_content1) #计算数据列表的长度
data=zip(all_content1,all_content2) #使用zip函数将两个列表打包成一个元组worksheet1 = xlrd.open_workbook(u'C:/Users/Administrator/Desktop/data2.xlsx')
sheet_names1= worksheet1.sheet_names()for sheet_name1 in sheet_names1:sheet1 = worksheet1.sheet_by_name(sheet_name1)rows1 = sheet1.nrows # 获取行数cols1 = sheet1.ncols # 获取列数all_content3 = []for i in range(1,rows1) : #excel第一行是列名,从第二列开始取数cell3 = sheet1.cell_value(i, 0) # 取第一列列数据try:all_content3.append(cell3)except ValueError as e:pass
for sheet_name2 in sheet_names1:sheet2 = worksheet1.sheet_by_name(sheet_name2)rows2 = sheet2.nrows # 获取行数cols2 = sheet2.ncols # 获取列数,尽管没用到all_content4 = []for i in range(1,rows2) :cell4 = sheet2.cell_value(i, 1) # 取第二列列数据try:all_content4.append(cell4)except ValueError as e:pass   
data1=zip(all_content3,all_content4)
'''for each in data1:print(each)'''
length2=len(all_content3)#计算事故列表的长度for i in range(length1):t=0.00017966296 #20m对应的经纬度n=50 #决定搜索半径为20n米,即方圆1000米内D=t*ncount=0x1=all_content1[i]y1=all_content2[i]j=0while j<length2:x2=all_content3[j]y2=all_content4[j]d=math.sqrt(math.pow((x2-x1),2)+math.pow((y2-y1),2)) if d<D:count+=1j+=1#print(i,count)print('表1中编号为%d的点方圆%d米内共有%d个表2中的点'%(i+1,20*n,count))'''with open('C:/Users/Administrator/Desktop/点数.txt','a',encoding='utf-8') as f:text='%d\n'%countf.write(text)'''

1
2

点图
结果


http://www.ppmy.cn/news/788532.html

相关文章

人脸识别最低像素_人脸识别新利器:让你在50米内无处遁逃

在我们的生活中,有一种设备遍布大街小巷却又不容易发现、随时随地影响着我们的生活却让我们察觉不到,这就是监控摄像头。目前,在北京市,仅官方设置的摄像头数量就超过了40万,各式大大小小的监控摄像头数量早已突破了百万。 这些摄像头最重要的作用当然是记录下所覆盖范围内…

php计算附近的商家,百度地图根据经纬度计算500米内商家

前台js var map new BMap.Map("allmap"); var point new BMap.Point(116.52785,39.920778); map.addOverlay(new BMap.Marker(point)); map.centerAndZoom(point,15); map.enableScrollWheelZoom(); // 启用滚轮放大缩小 var geolocation new BMap.Geolocation();…

ueditor接入秀米编辑器

秀米编辑器用来编辑微信页面很方便&#xff0c;功能也比较强大。秀米提供了第三方编辑器接入的功能&#xff0c;接入方法可以参照官网示例&#xff1a;http://hgs.xiumi.us/uedit/ 但是这里有几点要注意&#xff1a; 1、 示例中第2点文件所放置的目录 这个html是秀米编辑器的弹…

随机产生50个100以内的不重复的整数,设计位图排序算法进行排序。

1.问题 随机产生50个100以内的不重复的整数&#xff0c;设计位图排序算法进行排序。 2.设计思路 阶段1&#xff1a; 初始化一个空集合    for i[0,n)    bit[i]0 阶段2&#xff1a; 读入数据i&#xff0c;并设置bit[i]1    for each i in the input file    bit[i]1…

JavaWeb 笔记——4

JavaWeb 笔记——4 一、JSP1.1、JSP概述1.2、JSP快速入门1.3、JSP原理1.4、JSP脚本1.5、JSP缺点1.6、EL表达式1.7、JSTL标签1.8、MVC模式和三层架构 二、介于三层框架下的案例2.1、准备环境2.2、查询所有2.3、添加2.4、修改2.4.1、修改-回显数据2.4.2、修改-修改数据 2.5、删除…

华为云怎么修改服务器密码,华为云怎么修改服务器密码忘记

华为云怎么修改服务器密码忘记 内容精选 换一换 本节操作介绍通过华为云APP连接Linux实例的操作步骤。云服务器状态为“运行中”。已获取Linux云服务器用户名和密码&#xff0c;忘记密码请参考在控制台重置云耀云服务器密码重置密码。云耀云服务器已经绑定弹性公网IP。所在安全…

2023华为机考刷题指南:八周机考速通车

2023.3.27更新&#xff1a; 24届的实习开了&#xff0c;强烈建议大家想去华为的话&#xff0c;参加一下实习&#xff0c;实习的机考是可以在秋招的时候用的&#xff0c;相当于有两次机考机会&#xff0c;另外实习机考难度也会稍微简单一点&#xff0c;其他一些对求职比较有用的…

华为服务器 修改管理地址,华为服务器修改管理地址

华为服务器修改管理地址 内容精选 换一换 域名的DNS服务器定义了域名用于解析的权威DNS服务器。通过华为云注册成功的域名默认使用华为云DNS进行解析&#xff0c;详细内容&#xff0c;请参见华为云DNS对用户提供域名服务的DNS是什么&#xff1f;。若您选择非华为云DNS进行域名解…