目前,数据库中有表global_24h 和 countries,分别记录了热点信息和国家信息。

在pgAdmin中查看global_24h如下:

1.查询坐标系信息。

SELECT ST_SRID(the_geom) from global_24h;
SELECT ST_SRID(the_geom) from countries;

查询结果表明:countries的坐标系为EPSG:4326,global_24h 的几何坐标系为EPSG:3857,

首先,需要将表global_24h转换到坐标系EPSG:4326。

2.转换坐标系

ALTER TABLE  global_24h
ALTER COLUMN the_geom
SET DATA TYPE geometry(Point,4326)
USING ST_Transform(the_geom,4326)

现在,两张表的坐标系都为EPSG:4326。

3.统计每个国家的热点个数

select c.name, MIN(c.iso2) as ios2,count(*) as spot_count
from global_24h as f
join countries as c
on ST_Contains(c.the_geom, f.the_geom) group by c.name order by c.name

在pgAdmin中的显示如下:

4. 将查询结果写入csv文件

ogr2ogr -f  CSV  hs_countries.csv -sql "select c.name, MIN(c.iso2) as ios2,count(*) as spot_count from global_24h as f join countries as c on ST_Contains(c.the_geom, f.the_geom) group by c.name order by c.name"  PG:"host=localhost port=5432 dbname=postgis_32_sample user=postgres password=postgres schemas=public" 

5.批量生成每个国家热点信息的shapefile

先从hs_countries.csv中获取name, ios2 和 count,分别赋值给%%a, %%b,%%c。然后用一个for循环遍历hs_countries.csv中的每一行记录,分别生成对应的shapefile。

@echo off
for /f "tokens=1-3 delims=, skip=1" %%a in (hs_countries.csv) do (echo "Generating shapefile %%b.shp for country %%a (%%b) containing %%c features"ogr2ogr out_shapefiles/%%b.shp PG:"dbname='postgis_32_sample' user='postgres' password='postgres'"  -sql "SELECT ST_Transform(hs.the_geom, 4326), hs.acq_date, hs.acq_time, hs.bright_t31 FROM global_24h as hs JOIN countries as c ON ST_Contains(c.the_geom, ST_Transform(hs.the_geom, 4326)) WHERE c.iso2 = '%%b'"
)

生成的结果如下:

在QGIS中查看国家Brazil(BR)中的热点。

6.批量上传每个国家热点信息的shapefile

遍历文件夹中的shp文件,依次上传到postgis。

@echo off
for %%I in (out_shapefiles\*.shp*) do (echo Importing shapefile %%~nxI to public.hs_uploaded PostGIS table...ogr2ogr -append -update  -f PostgreSQL PG:"dbname='postgis_32_sample' user='postgres' password='postgres'" out_shapefiles/%%~nxI -nln public.hs_uploaded -sql "SELECT acq_date, acq_time, bright_t31, '%%~nI' AS iso2, '%date%' AS upload_datetime, 'out_shapefiles/%%~nxI' as shapefile FROM %%~nI"
)

7.查询上传结果

select * from hs_uploaded where ISO2='AT'

在pgAdmin中的显示如下:

PostGIS批量导入导出shapefile文件相关推荐

  1. 批量导入/导出Excel文件(Python+Matlab)

    简单整理了下批量导入/导出Excel的Python和Matlab代码. Matlab 连续数字型.xlsx文件(如file_1.xlsx, file_2.xlsx, file_3.xlsx) clc, ...

  2. 本地使用shell脚本批量导入导出镜像文件

    背景 对于一些不通外网的环境进行部署的时候,需要进行离线部署项目,所以需要导出镜像后本地导出.一下做个脚本把需要导出的java项目批量处理. 导出本地镜像 shell脚本如下: #/bin/bash ...

  3. postgis导入导出shp文件

    postgis导入导出shp文件,主要有两种方式: 一.借助PostGIS shapefile工具 具体操作可参考     PostGIS教程四:加载空间数据 https://blog.csdn.ne ...

  4. 使用cardme读写VCard文件,实现批量导入导出电话簿

    转载自 使用cardme读写VCard文件,实现批量导入导出电话簿 首先下载jar包cardme. http://sourceforge.net/projects/cardme/?source=nav ...

  5. Java实现文件批量导入导出实例(兼容xls,xlsx)

    <link href="https://csdnimg.cn/public/favicon.ico" rel="SHORTCUT ICON"> &l ...

  6. java导入导出有版本兼容问题_Java实现文件批量导入导出实践(兼容xls,xlsx)

    小Hub领读: 使用poi导入导出xls文件还是比较容易的,有完整的项目代码,可以clone下来好好研究哈! 1.介绍 java 实现文件的导入导出数据库,目前在大部分系统中是比较常见的功能了,今天写 ...

  7. 如何在SQL Server 2016中使用R导入/导出CSV文件

    介绍 (Introduction) Importing and exporting CSV files is a common task to DBAs from time to time. 导入和导 ...

  8. AD域中如何批量导入导出账号

    本帖出现于51CTO论坛中,是一位网友自己的实际工作经历.是在AD域中如何批量导入导出账号.工作上有一个需求,需要批量的导入一些账号,并要求有一些属性,比如:部门,职位,分机等! 如果您有兴趣也可以去 ...

  9. CATIA批量导入导出数据到EXCEL

    CATIA批量导入导出数据到EXCEL 序言 一.EXCEL数据点批量导入到CATIA 二.CATIA数据点批量导入到EXCEL 三.VB批量输出点到EXCEL 序言 工作中,由于测量基准和建模基准不 ...

  10. android手机导出联系人,OPPO Reno如何批量导入/导出联系人?

    准备换新手机,怎么将联系人号码全部存到新机里呢?现在的手机都有导入/导出联系人的功能,很方便哦! OPPO Reno如何批量导入/导出联系人? 1.依次进入手机[设置]-[系统应用]-[电话本]-[导 ...

最新文章

  1. java 重用性_提高Java代码重用性的三个方法
  2. 《C++ Primer 5th》笔记(5 / 19):语句
  3. mysql to data_mysql str_to_date 字符串转换为日期
  4. pxe安装linux dhcp失败,利用PXE自动化安装Centos时启动DHCP服务时遇到错误,请求大佬指教...
  5. MySQL数据库MyISAM和InnoDB存储引擎的比较
  6. ios ffmpeg h264 decode
  7. java-设计模式(行为型)-【命令模式】
  8. UVa 400 Unix Is
  9. win10北通手柄没反应_【游戏手柄攻略】WIN10怎样校准和设置游戏手柄
  10. 计算机无法备份,iTunes无法备份是怎么回事?iTunes无法备份怎么解决?
  11. latex linux 安装教程,Deepin安装LaTex,
  12. 淘宝搜索上传图片获得上传sid
  13. treeset可以重复吗_社保和商业医疗险可以重复报销吗?报销攻略请收好
  14. 海外服务器租用主要要看三个方面
  15. python面向对象基础-01
  16. NYOJ:71-独木舟上的旅行
  17. FPGA数字信号处理(八)Quartus FFT IP核实现
  18. Linux Nginx安装配置及HTTPS配置
  19. matlab怎么标记节点,为图节点和边添加标签
  20. 使用word插入无法编辑的对象

热门文章

  1. 明华澳汉 sle_4442 卡 读写
  2. [原创]用逻辑嗅探破解接触式IC卡口令
  3. h3c交换机端口加入vlan命令_h3c交换机vlan配置划分命令
  4. 计算机高中会考inpute,高中信息技术会考知识点
  5. fontawesome 助手
  6. 觅风易语言教程全集(完整超清版+源码)
  7. 关于 Access 数据库数据类型
  8. mysql sql trace_SQL_TRACE及 Tkprof用法以及问题分析
  9. 金士顿u盘数据恢复软件推荐
  10. msf-Msfvenonm生成后门木马