首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏给永远比拿愉快

    MongoDB导入Shapefile数据

    两种解决方案: 一、将整个shapefile转为GeoJSON然后直接导入mongoDB数据库中 首先,将shapefile数据转为WGS84地理坐标,然后使用GDAL的命令行工具ogr2ogr mongodb的mongoimport工具进行导入: mongoimport --db world --collection continents < continents.json 这样子整个shapefile 二、更加细粒度的存储方法是将shapefile中的每个feature取出来转为GeoJSON存入mongodb 具体实现代码入下(Java版本): package cn.tzy.mongodb; COLLECTION_NAME); MongoCollection<Document> coll = db.getCollection(COLLECTION_NAME); File shapeFile = new File(SHAPE_FILE); FileDataStore store = FileDataStoreFinder.getDataStore(shapeFile);

    2.3K20发布于 2019-01-22
  • 来自专栏给永远比拿愉快

    Shapefile属性操作之删

    案例介绍 这里我们要处理的数据是中国地图分省的矢量Shapefile,是一个面状数据。在上篇中我们给该数据添加了一个属性字段Abbr用以表示省的简称。这篇我们再把该字段给删除掉。 defs.GetFieldDefn(i).GetName(): return i raise ValueError(f'{name} not found') # 打开一个Shapefile

    97310发布于 2020-06-15
  • 来自专栏给永远比拿愉快

    Shapefile属性操作之查

    案例介绍 我们还是使用之前的分省Shapefile数据,主要包含每个省的一些统计信息。

    1.2K20发布于 2020-06-15
  • 来自专栏给永远比拿愉快

    Shapefile属性操作之改

    作者:阿振 写作时间:2020-06-13 ---- 开篇 在上篇的《Shapfile属性操作之增》和《Shapefile属性操作之删》中我们分别介绍了对于空间矢量数据属性的增加(CREATE)和删除( 案例介绍 这里我们要处理的数据是中国地图分省的矢量Shapefile,是一个面状数据。该数据有一个NAME字段,给出了每个省的名称。 Show me the code. from osgeo import ogr ogr.UseExceptions() # 打开一个Shapefile ds: ogr.DataSource = ogr.Open name) # 修改完了记得Set一下 layer.SetFeature(feature) # 关闭数据集 ds = None 方法总结 首先,我们使用ogr.Open()函数打开Shapefile

    1.1K10发布于 2020-06-15
  • 来自专栏给永远比拿愉快

    Shapefile属性操作之增

    这里我们要处理的数据是中国地图分省的矢量Shapefile,是一个面状数据。该数据有一个NAME字段,给出了每个省的名称。然后我们需要给给数据增加一个属性字段Abbr,用以表示每个省的简称。 '广西': '桂', '宁夏': '宁', '新疆': '新', '西藏': '藏', '中国香港': '港', '中国澳门': '澳' } # 打开一个Shapefile 一下 layer.SetFeature(feature) # 关闭数据集 ds = None 方法总结 下面我们来对上面的代码进行一个方法的总结: 首先,我们使用ogr.Open()函数打开Shapefile

    84820发布于 2020-06-15
  • 来自专栏给永远比拿愉快

    Fiona简介及Shapefile数据读取

    properties': OrderedDict([('Name', '新疆维吾尔自治区'), ('CenterX', 84.9023), ('CenterY', 42.148)])} Shapefile 输出结果如下: 数据范围:(73.4766, 18.1055, 135.0879, 53.5693) 投影定义:{'init': 'epsg:4326'} 数据格式:ESRI Shapefile

    1.3K40发布于 2019-01-22
  • 来自专栏气象杂货铺

    利用shapefile文件创建mask筛选数据

    最近在处理数据,需要筛选陆地、海洋还有特定区域的信息进行分析,主要还是利用shapefile文件创建mask文件,然后进行筛选。 lat, method='nearest') ocean_sta = ds[idx.data < 1] land_sta = ds[idx.data > 0] 站点筛选可视化 当然也可以利用其它shapefile 文件创建mask文件筛选数据,比如江苏省shapefile文件。

    1.9K20编辑于 2022-09-23
  • 来自专栏给永远比拿愉快

    ShapeFile数据到mongodb的导入

    具体实现思想是:首先使用GeoTools读取shapefile文件,然后遍历每个feature,将feature转为GeoJSON的字符串。 continents"; // Collection名称 final String SHAPE_FILE = "/home/zytan/data/continent.shp"; // ShapeFile 文件 File shapeFile = new File(SHAPE_FILE); ShapefileDataStore store = new ShapefileDataStore (shapeFile.toURI().toURL()); SimpleFeatureSource sfSource = store.getFeatureSource(); SimpleFeatureIterator sfIter = sfSource.getFeatures().features(); // 从ShapeFile文件中遍历每一个Feature

    1.5K20发布于 2019-01-22
  • 来自专栏给永远比拿愉快

    创建Shapefile文件并写入数据

    基本思路 使用GDAL创建Shapefile数据的基本步骤如下: 使用osgeo.ogr.Driver的CreateDataSource()方法创建osgeo.ogr.DataSource矢量数据集 使用osgeo.ogr.DataSource的CreateLayer()方法创建一个图层 使用osgeo.ogr.FieldDefn()定义Shapefile文件的属性字段 创建osgeo.ogr.Feature 的CreateFeature()添加Feature对象到当前图层 重复步骤4和5依次添加所有的Feature到当前图层即可 代码实现 下面的例子中,我们读取GeoJSON表示的中国省区数据,然后其转为Shapefile 可以看到每个Feature都有一个properties字段和geometry字段,我们需要根据properties字段的信息创建Shapefile数据的属性表,根据geometry字段创建Shapefile open('China.json') as f: china = json.load(f) # 创建DataSource driver = ogr.GetDriverByName('ESRI Shapefile

    2.8K30发布于 2019-01-22
  • 来自专栏给永远比拿愉快

    使用Fiona创建Shapefile矢量数据

    基本思路 使用Fiona写入Shapefile数据,主要是构建一个Schema,然后将空间对象转为GeoJSON的形式进行写入。 代码实现 这里我们举两个例子进行说明:第一是将GeoJSON数据转为Shapefile,第二个是新建一个Shapefile,然后再里面写入自定义的空间几何数据。 GeoJSON的格式定义,参见:创建Shapefile文件并写入数据。 'name': 'str'}} # 使用fiona.open方法打开文件,写入数据 with fiona.open('Provinces.shp', mode='w', driver='ESRI Shapefile ', 'name': 'str'}} # 使用fiona.open方法打开文件,写入数据 with fiona.open('Beijing.shp', mode='w', driver='ESRI Shapefile

    1.9K20发布于 2019-01-22
  • 来自专栏给永远比拿愉快

    PostGIS导入导出ESRI Shapefile数据

    这里介绍如何导入我们常用的ESRI Shapefile数据到PostgreSQL数据库中,我们可以使用PostGIS提供的shp2pgsql和pgsql2shp工具进行导入和导出操作,还可以使用GDAL -s指定空间参考系,PostGIS的参考系和EPSG代码是一样的,比如EPSG:4326表示WGS84地理坐标系 -I指定在新建的关系表的空间对象的那一列建立空间索引 然后,双引号引起来的是Shapefile ---- 下面说说数据的导出,我们可以使用psql2shp工具导出数据为Shapefile文件。

    4.6K10发布于 2019-01-22
  • 来自专栏数据处理与分析

    FME小技巧-Esri Shapefile乱码

    问题 FME打开Shapefile数据,字段名偶尔会有乱码的情况。 数据特点 经常有朋友会问,我的数据,ArcGIS里没问题的,怎么FME一读就乱码了? 划重点:ArcGIS里打开正常! 上面简单的划了个重点,ArcGIS里打开正常,那么我就想,FME能不能以ArcGIS读取Shapefile的方式将数据读进来呢? 用什么方式来读? 经过查找相关资料、帮助文档,我发现,FME是可以以ArcGIS读Shapefile的方式来读这种数据的。 其实,当我们用ArcGIS读取Shapefile数据的时候,你在导航栏里看到的,已经不是Shapefile了。如下图所示: ? 在这里,选Shapefile,然后再读到FME中,就不会乱码了! 其他的小技巧 其实,上面说了那么多,你都可以忽略! 做事情,我就喜欢,简单! 做数据处理,也一样! 你不妨,试试下面这种方式! ?

    2.1K10发布于 2019-07-31
  • 来自专栏给永远比拿愉快

    打开Shapefile文件的正确方式

    Shapefile文件简介 Shapefile文件是美国ESRI公司发布的文件格式,因其ArcGIS软件的推广而得到了普遍的使用,是现在GIS领域使用最为广泛的矢量数据格式。 官方称Shapefile是一种用于存储地理要素的几何位置和属性信息的非拓扑简单格式。 一般地,Shapefile文件是多个文件的集合,至少包括一个shp,shx以及dbf文件。 文件的话,需要根据shx文件中的信息读取shp中的二进制数据并转化为几何对象,然后再读取dbf表格,将属性添加到几何对象上就完成了对一个Shapefile文件的解析. 英文好的同学,请转移到这里:ESRI Shapefile Technical Desc GDAL中矢量数据组织 GDAL中的栅格数据使用OGRDataSource表示(OGRDataSoruce是抽象类 Shapefile文件,并读取空间要素及其属性。

    3.5K20发布于 2019-01-22
  • 来自专栏给永远比拿愉快

    GeoTools读取ESRI ShapeFile中文乱码解决方法

    今天在使用Java版GIS开源工具GeoTools读取ShapeFile文件,其中ShapeFile的dbf文件(属性表)中的属性为中文字符,按照官方的案例读取结果显示为乱码。 原始的代码为: /** * @description: 使用GeoTools库读取ShapeFile文件 * @author Zhenyu Tan * @date 2016年8月9日 下午10: args) throws Exception { String filePath = "F:/2016/Data/中国/China/China.shp"; File shapeFile = new File(filePath); FileDataStore dataStore = FileDataStoreFinder.getDataStore(shapeFile) 而我们中文操作系统下ShapeFile文件的默认编码一般为GBK,所以只要告诉ShapefileDataStore使用GBK编码进行解析就OK了。

    2.8K30发布于 2019-01-22
  • 来自专栏跟牛老师一起学WEBGIS

    shapefile.js实现shp数据的上传与展示

    概述 shapefile是常见的矢量数据格式,但是由于其文件组成结构很难在webgis上直接展示。 本文通过express和compressing实现打包后shapefile文件的上传,并结合shapefile.js实现shapefile数据的转换展示。 实现效果 实现代码 1. this.fileList = [] shapefile.open(url) .then(source => source.read() .then

    2.5K20编辑于 2023-05-11
  • 来自专栏我叫刘半仙

    高效访问海量地图数据--GeoServer手动发布本地Shapefile地图

    地图数据以海量著称,传统的做法是建立空间索引,优化查询等,这些并没有解决如何有效的组织地图数据,提高地图访问效率的问题。用GeoServer可以在用户之间迅速共享空间地理信息。

    5.7K70发布于 2018-04-14
  • 来自专栏EpiHub

    R矢量地图栅格化(将shapefile转换成raster)

    R矢量地图栅格化(将shapefile转换成raster) 背景 在处理地图数据时候,经常会碰到shp与raster两种格式。通常r中应用较多的为raster栅格数据。shp文件太大,读取也不方便。 rasterize(shape, r, 1)里面有三个主要参数: shape是shp文件 r是要栅格化的范围及像素大小;需要先定义 1表示,栅格化后,所有值大小 library(raster) shape = shapefile

    2.3K20编辑于 2022-11-03
  • 来自专栏我叫刘半仙

    原 高效访问海量地图数据--GeoServer手动发布本地Shapefile地图

    首先,本文实现的结果图给大家展现一下: 放大的样子: 颜色是通过属性中某个字段值来分级的,可以自定义。 上面功能是用ArcGIS切片好数据,在Geoserver 中发布,并用google地图作为底图展

    3.1K60发布于 2018-04-16
  • 来自专栏DevOps

    Geotools Vector ShapeFile 对矢量文件进行坐标系转换,并且保存

    featureSource.getSchema(); SimpleFeatureTypeImpl typeImpl = (SimpleFeatureTypeImpl)featureType; //创建新的shapefile

    34310编辑于 2024-03-29
  • 来自专栏代码编写世界

    Shapefile到GeoJSON:用GDAL实现GIS矢量数据读写与空间分析

    ESRI Shapefile:GIS中最常见的矢量数据格式,几乎所有的商业和开源GIS软件都支持。除了几何信息之外,还包含空间信息和属性信息。 ReadShp()) { return 1; } Convert(); WriteGeoJson(); } 在这里,读取的矢量是一个Shapefile文件,包含的都是多边形的要素

    8710编辑于 2026-03-10
领券