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

news/2024/7/21 5:16:06 标签: 列表, excel, python, poi, 数据分析
python"># -*- 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*n
    count=0
    x1=all_content1[i]
    y1=all_content2[i]
    j=0
    while 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+=1
        j+=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'%count
          f.write(text)'''

1
2

点图
结果


http://www.niftyadmin.cn/n/1712007.html

相关文章

网络安全 基于scrapy框架与selenium、openpyxl库爬取国外各国家疫情统计汇总信息

网络安全 基于scrapy框架与selenium、openpyxl库爬取国外各国家疫情统计汇总信息 数据来源 https://voice.baidu.com/act/newpneumonia/newpneumonia/ 思路 由于目标页面中的数据是动态加载出来的&#xff0c;所以直接发起请求得到的响应是不包含任何有用数据的&#xff0c;所…

算法设计 格雷码问题

算法设计 格雷码问题 1. 问题描述 对于给定的正整数n&#xff0c;格雷码为满足如下条件的一个编码序列&#xff1a; (1) 序列由2n个编码组成&#xff0c;每个编码都是长度为n的二进制位串。 (2) 序列中无相同的编码。 (3) 序列中位置相邻的两个编码恰有一位不同。 例如&#x…

python将GPS时间戳批量转换为日期时间(年月日时分秒)

#将GPS时间戳数据批量转化为日期时间 import numpy as np import pandas as pd import time#设置Spyder右侧console区的print输出行列数无限制 pd.set_option(display.max_columns, None) pd.set_option(display.max_rows, None) #读取数据 datapd.read_excel(C:/Users/Adminis…

算法设计 L型组件填图问题

算法设计 L型组件填图问题 1. 问题描述 设B是一个nn棋盘&#xff0c;n2k,(k1,2,3,…)。用分治法设计一个算法&#xff0c;使得&#xff1a;用若干个L型条块可以覆盖住B的除一个特殊方格外的所有方格。其中&#xff0c;一个L型条块可以覆盖3个方格。且任意两个L型条块不能重叠覆…

算法设计 最长递增子序列问题

算法设计 最长递增子序列问题 1. 问题描述 求一个由n个整数组成的整数序列的最长递增子序列。一个整数序列的递增子序列可以是序列中非连续的数按照原序列顺序排列而成的。 最长递增子序列是其递增子序列中长度最长的。 2. 具体要求 输入&#xff1a;输入的第一行是一个正整数…

算法设计 凸多边形的三角剖分

算法设计 凸多边形的三角剖分 1. 问题描述 设P是一个有n个顶点的凸多边形&#xff0c;P中的弦是P中连接两个非相邻顶点的线段。用P中的n-3条弦将P剖分成n-2个三角形&#xff08;如下图所示&#xff09;。使得n-3弦的长度之和最小的三角剖分称为最优三角剖分。 2. 具体要求 输入…

python根据excel时间表统计24小时各小时区间点的个数

1.首先使用excel中的HOUR()函数&#xff0c;将日期数据(年/月/日 时:分:秒)转换为小时&#xff0c;表格命名为hour.xlsx: 2.使用python读取excel数据hour.xlsx&#xff0c;将小时列转换为列表hour, 将列表hour转换为集合myset&#xff0c;使用count函数统计24小时各小时区间点的…

python实现几种常用的排序算法(冒泡排序,快速排序,选择排序,堆排序,插入排序,希尔排序,归并排序),带注释简单通俗易懂

1.冒泡排序算法 # 冒泡排序算法(从小到大) #方法1 def bubblesort(data):nlen(data)for i in range(0,n):for j in range(i1,n):if data[i]>data[j]:data[i],data[j]data[j],data[i]return data if __name__ __main__:a[58,47,69,20,15,66,52,80,30,64]print(bubblesort(a…