乡镇围栏数据存储ES实践

在这里插入图片描述
空白的是ES渲染的问题,放大后看到几乎没有丢失数据
在这里插入图片描述

1. ES索引建立
PUT /town_fence
{"settings": {"number_of_shards": 1},"mappings": {"properties": {"province": {"type": "keyword"},"city": {"type": "keyword"},"district": {"type": "keyword"},"town": {"type": "keyword"},"fence" : {"type": "geo_shape"}}}
}
2. Python文件解析入ES
# 从excel文件解析乡镇围栏数据至ES中
import pandas as pd
from elasticsearch import helpers, Elasticsearchtown_fence_df = pd.read_csv("../data/town.csv", sep='@', encoding='UTF-8')def init_es_client(es_host):es = Elasticsearch(hosts=[es_host], verify_certs=False)return eses_client = init_es_client("http://127.0.0.1:9200")actions = list()
count = 0for index, item in town_fence_df.iterrows():info = dict()info["province"] = item["province"]info["city"] = item["city"]info["district"] = item["region"]info["town"] = item["town"]# 有的围栏是多块,如天津,分开编号写,否则报多边形自相交异常polygon_parent_arr = item["polyline"].split("|")id_index = 0try:for polygon in polygon_parent_arr:coordinates_parent = []coordinates = []polygon_arr = polygon.split(";")lng_lat_first = []lng_lat_last = []for i in range(0, len(polygon_arr)):lng_lat = polygon_arr[i]lng_lat_arr = lng_lat.split(",")coordinate = [round(float(lng_lat_arr[0]), 6), round(float(lng_lat_arr[1]), 6)]if i == 0:lng_lat_first = coordinateif i == len(polygon_arr) - 1:lng_lat_last = coordinatecoordinates.append(coordinate)# 保证围栏闭合if lng_lat_first[0] != lng_lat_last[0]:coordinates.append(lng_lat_first)coordinates_parent.append(coordinates)info["fence"] = {"type": "Polygon", "coordinates": coordinates_parent}unique_id = str(hash(info["province"] + info["city"] + info["district"] + info["town"]))my_id = unique_id + "_" + str(id_index) if id_index > 0 else unique_idaction = {"_op_type": "index","_index": "town_fence","_id": my_id,"_source": info.copy()}actions.append(action.copy())id_index += 1if len(actions) == 1:try:helpers.bulk(es_client, actions)count += len(actions)print(count)actions.clear()except Exception as e:town_fence_df.loc[index, 'flag'] = Falseactions.clear()except Exception as e:town_fence_df.loc[index, 'flag'] = Falseactions.clear()
if len(actions) > 0:helpers.bulk(es_client, actions)count += len(actions)print(count)actions.clear()town_fence_df[town_fence_df['flag'] == False].to_csv('../data/town_errors.csv', sep='@', encoding='UTF-8', index=False)es_client.close()
3. 数据查询

在这里插入图片描述
欢迎关注公众号 算法小生

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ClickHouse数据管理与同步的关键技术

2024年 5 月 18 日,ClickHouse官方首届杭州 Meetup 活动成功举行。本次活动由 ClickHouse 和阿里云主办,NineData 和云数据库技术社区协办。围绕ClickHouse的核心技术、应用案例、最佳实践、数据管理、以及迁移同步等方面,和行业专家展开交流…

基于语音信号MFCC特征提取和GRNN神经网络的人员身份检测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 MFCC特征提取 4.2 GRNN神经网络概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022a 3.部分核心程序 ...............................................…

Jupyter Notebook快速搭建

Jupyter Notebook why Jupyter Notebook Jupyter Notebook 是一个开源的 Web 应用程序,允许你创建和分享包含实时代码、方程、可视化和解释性文本的文档。其应用包括:数据清洗和转换、数值模拟、统计建模、数据可视化、机器学习等等。 Jupyter Notebo…

Vue3实战笔记(58)—从零开始掌握Vue3插槽机制,基础入门

文章目录 前言插槽基础入门总结 前言 不论是组件封装还是分析源码,实际开发中经常接触插槽,插槽是干什么用的呢?组件之间能够接收任意类型的 JavaScript 值作为 props,但组件要如何接收模板内容呢?在某些场景中&#…

c++(七)

c(七) 内联函数内联函数的特点为什么要有内联函数内联函数是如何工作的呢 类型转换异常处理智能指针单例模式懒汉模式饿汉模式 VS中数据库的相关配置 内联函数 修饰类的成员函数,关键字:inline inline 返回值类型 函数名(参数列…

vue中使用svg图像

一 、svg图像是什么 SVG(可缩放矢量图形)是一种图像格式,它以XML文档的形式存在,用以描述图像中的形状、线条、文本和颜色等元素。由于其基于矢量的特性,SVG图像在放大或改变尺寸时能够保持图形质量不受影响。这种格式…

服务器的远程桌面无法连接,服务器远程桌面无法连接问题处理教程

服务器的远程桌面无法连接,服务器远程桌面无法连接问题处理教程。 一、问题概述 服务器远程桌面无法连接是日常运维中常见的问题之一。它可能由多种原因造成,如网络问题、服务器配置错误、远程桌面服务未启动等。本教程将指导您逐步排查并解决这些问题。…

电源滤波器怎么选用

电源滤波器怎么选用 滤波器应用场景及作用第一步:第二步:第三步:第四步: 滤波器应用场景及作用 可以有效解决EMC测试无法通过、端口防护、滤除干扰、设备保护等问题 主要功能有: 1、降低主电源谐波; 2、保护驱动装置电力电子元件…

python找出100~999之间的水仙花数字

水仙花数字:个位,十位,百位的立方之和等于这个数本身 例如:153 1^35^33^3 for i in range(100, 1000):bw i // 100sw i % 100 // 10gw i % 10if bw ** 3 sw ** 3 gw ** 3 i:print(i)

Kubernetes——Pod控制器

目录 一、Pod控制器 1.定义 2.Pod与控制器的关系 3.作用 4.Pod控制器的类型组成及特点 4.1Pod控制器的类型 4.1.1ReplicaSet 4.1.2Deployment 4.1.3DaemonSet 4.1.4StateSet 4.1.5Job 4.1.6CronJob 4.2Pod与控制器的关系 二、Kubernetes中的服务发现 1.服务发现的…

内网渗透-在HTTP协议层面绕过WAF

进入正题,随着安全意思增强,各企业对自己的网站也更加注重安全性。但很多web应用因为老旧,或贪图方便想以最小代价保证应用安全,就只仅仅给服务器安装waf。 本次从协议层面绕过waf实验用sql注入演示,但不限于实际应用…

Ps:调整画笔工具

调整画笔工具 Adjustment Brush Tool可以将选区、创建蒙版和应用调整的传统工作流程合并为一个步骤,简化了对图像进行非破坏性局部调整的操作。 快捷键:B 调整画笔工具是 Photoshop 2024 年 5 月版(25.9 版)新增的工具。 ◆ ◆ …

【CTF Web】BUUCTF BUU LFI COURSE 1 Writeup(代码审计+PHP+文件包含漏洞)

BUU LFI COURSE 1 1 点击启动靶机。 解法 <?php /*** Created by PhpStorm.* User: jinzhao* Date: 2019/7/9* Time: 7:07 AM*/highlight_file(__FILE__);if(isset($_GET[file])) {$str $_GET[file];include $_GET[file]; }如果GET请求中接收到file参数&#xff0c;就会…

AJAX基础知识

定义 Ajax 异步 JavaScript 和 XML &#xff08; async javascript and xml &#xff09;&#xff0c;使用 Ajax 技术网页应用能够快速地将数据更新呈现在用户界面上&#xff0c;而不需要重载&#xff08;刷新&#xff09;整个页面&#xff0c;这使得程序能够更快地回应用户的操…

年薪百万也难达财务自由?揭秘背后的真相!

谈及财务自由&#xff0c;人们往往会好奇&#xff1a;究竟需要多少资金才能跨越这道门槛&#xff1f;根据《胡润财富自由门槛》的调研&#xff0c;中国一线城市的财富自由标准从入门级的人民币1900万元到中级6500万到高级别的1.9亿元不等。然而&#xff0c;财务自由的核心并非仅…

SpringBoot打war包并配置外部Tomcat运行

简介 由于其他原因&#xff0c;我们需要使用SpringBoot打成war包放在外部的Tomcat中运行,本文就以一个案例来说明从SpringBoot打war包到Tomcat配置并运行的全流程经过 环境 SpringBoot 2.6.15 Tomcat 8.5.100 JDK 1.8.0_281 Windows 正文 一、SpringBoot配置打war包 第一步&a…

react跨组件通信Context

案例&#xff1a;现在有个父-子-孙组件 需要进行组件通信 import { useState } from "react"; // 创建上下文 const CountContext React.createContext();//子组件 const SonComponent (props) > {return (<div><h2>子组件</h2><Grandson…

Sentinel与Nacos强强联合,构建微服务稳定性基石的重要实践

一、简介 Sentinel 作为一款强大的流量控制组件&#xff0c;能够对系统入口流量进行精准控制&#xff0c;有效防止服务因突发流量冲击引起服务雪崩&#xff0c;进而导致服务瘫痪&#xff0c;确保服务的稳定性和可靠性。 Nacos 作为配置管理和服务发现平台&#xff0c;实现了配置…

打印机的ip不同且连不上

打印机的ip不同且连不上 1.问题分析2.修改网段3.验证网络 1.问题分析 主要是打印机的网段和电脑不在同一个网段 2.修改网段 3.验证网络

LeetCode 两两交换链表中的节点

原题链接24. 两两交换链表中的节点 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff0c;请看图片的过程模拟&#xff0c;这里添加了一个哨兵节点0&#xff0c;目的是为了方便操作&#xff0c;得到指向1节点的指针。 class Solution {public:ListNode* swapPairs(ListNod…