Fiona简介 用GDAL的Python绑定API书写程序有没有一种仍然在写C/C++的感觉,Fiona基于GDAL提供了更加Pythonic的读取空间矢量数据的...properties': OrderedDict([('Name', '新疆维吾尔自治区'), ('CenterX', 84.9023), ('CenterY', 42.148)])} Shapefile...数据读取 下面我们来体验一下Fiona的简洁之处,主要是使用Python内置的结构表示所有数据,所以使用Fiona操作空间数据就像操作Python内置的数据结构一样简单。...输出结果如下: 数据范围:(73.4766, 18.1055, 135.0879, 53.5693) 投影定义:{'init': 'epsg:4326'} 数据格式:ESRI Shapefile
今天在使用Java版GIS开源工具GeoTools读取ShapeFile文件,其中ShapeFile的dbf文件(属性表)中的属性为中文字符,按照官方的案例读取结果显示为乱码。...原始的代码为: /** * @description: 使用GeoTools库读取ShapeFile文件 * @author Zhenyu Tan * @date 2016年8月9日 下午10:...; // 设置编码后可以正确读取 //((ShapefileDataStore) dataStore).setCharset(Charset.forName("GBK")...ShapeFile文件的默认编码为ISO-8859-1。...而我们中文操作系统下ShapeFile文件的默认编码一般为GBK,所以只要告诉ShapefileDataStore使用GBK编码进行解析就OK了。
两种解决方案: 一、将整个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;...import java.io.File; import java.io.IOException; import java.io.StringWriter; import org.bson.Document...= new File(SHAPE_FILE); FileDataStore store = FileDataStoreFinder.getDataStore(shapeFile);
案例介绍 我们还是使用之前的分省Shapefile数据,主要包含每个省的一些统计信息。...我们可以遍历图层Layer中包含的所有Feature要素,然后读取要素的属性数据进行筛选过滤得到我们想要的结果。 SQL查询方式 代码展示 Talk is cheap....selected.GetFeature(0).GetField('NAME')) print(selected.GetFeature(0).GetField('HighSchool')) 方法总结 首先我们使用ogr.Open()函数读取数据
案例介绍 这里我们要处理的数据是中国地图分省的矢量Shapefile,是一个面状数据。在上篇中我们给该数据添加了一个属性字段Abbr用以表示省的简称。这篇我们再把该字段给删除掉。...Show me the code. from osgeo import ogr ogr.UseExceptions() # 从给定图层中读取字段的定义,根据给定字段名称找到该字段的索引编号 def...defs.GetFieldDefn(i).GetName(): return i raise ValueError(f'{name} not found') # 打开一个Shapefile
这里我们要处理的数据是中国地图分省的矢量Shapefile,是一个面状数据。该数据有一个NAME字段,给出了每个省的名称。然后我们需要给给数据增加一个属性字段Abbr,用以表示每个省的简称。...然后读取原始数据,新建一个属性字段Abbr,然后遍历数据中的每个Feature要素,取出NAME,再根据字典查询到当前NAME对应的Abbr填充进对应的字段即可。...'广西': '桂', '宁夏': '宁', '新疆': '新', '西藏': '藏', '中国香港': '港', '中国澳门': '澳' } # 打开一个Shapefile...一下 layer.SetFeature(feature) # 关闭数据集 ds = None 方法总结 下面我们来对上面的代码进行一个方法的总结: 首先,我们使用ogr.Open()函数打开Shapefile
开发语言为Java,开发工具为GeoTools和mongodb的Java Driver。...具体实现思想是:首先使用GeoTools读取shapefile文件,然后遍历每个feature,将feature转为GeoJSON的字符串。...下面代码是使用最新的API写的): package cn.tzy.mongodb; import java.io.File; import java.io.IOException; import java.io.StringWriter...; MongoCollection coll = db.getCollection(COLLECTION_NAME); // 使用GeoTools读取...ShapeFile文件 File shapeFile = new File(SHAPE_FILE); ShapefileDataStore store = new ShapefileDataStore
作者:阿振 写作时间: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. java.util.Properties 为读取.properties文件提供了相关的方法。...3.代码实例 属性文件a.properties如下: name=root pass=liu key=value 读取a.properties属性列表,与生成属性文件b.properties。...代码如下: 1 import java.io.BufferedInputStream; 2 import java.io.FileInputStream; 3 import java.io.FileOutputStream...; 4 import java.io.InputStream; 5 import java.util.Iterator; 6 import java.util.Properties; 7...String[] args) { 10 Properties prop = new Properties(); 11 try{ 12 //读取属性文件
package edu.qdgxy.util; import jxl.Cell; import jxl.Sheet; import java.io.File; import java.io.InputStream...; import java.io.Serializable; import java.util.Vector; import java.io.FileInputStream; import org.apache.struts2
目录 1 读取excle 1 读取excle import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow...toString()); } } catch (Exception e) { e.printStackTrace(); } 读取到的数字有可能...excle里面是1111,但是读取出来是1111.0 那么我们就可以使用 cell1.toString().split("\\.")[0]
JAVA有多种读取文件的方式,其中比较深层次的原理在我的另外一篇文章分析过:JDK核心JAVA源码解析(5) - JAVA File MMAP原理解析,那么,我们有哪些方式去读取一个文件的内容呢?...从ClassPath中读取文件 直接从项目的classpath(maven的话src/main/resource编译之后也会存在于classpath下)读取: InputStream inputStream...JDK7中的读取文件内容的方式 利用Path对象省略了各种StreamReader,同时原生自带读取所有内容到内存的方法,在读取比较小的文件所有内容时我们可以考虑这么做: Path path = Paths.get...JDK8中的读取文件内容的方式 JDK8继续优化了这块的代码,引入了Stream相关框架,同时针对文件读取也能转化为Stream操作: Path path = Paths.get(getClass()....利用FileUtils读取文件 我们还可以使用commons-io包里面的读取文件相关类FileUtils: commons-io commons-io 2.5 利用FileUtils
1.DB.java package com.bn.util; import java.sql.Connection; import java.sql.DriverManager; import...java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement...; import java.util.Iterator; import java.util.Properties; import org.dom4j.Document; import org.dom4j.DocumentException...private static String dbPwd; public void readXML(){ SAXReader sr = new SAXReader();//获取读取...然后开始读取。并将数据放入doc中 Element el_root = doc.getRootElement();//向外取数据,获取xml的根节点。
Shapefile文件简介 Shapefile文件是美国ESRI公司发布的文件格式,因其ArcGIS软件的推广而得到了普遍的使用,是现在GIS领域使用最为广泛的矢量数据格式。...官方称Shapefile是一种用于存储地理要素的几何位置和属性信息的非拓扑简单格式。 一般地,Shapefile文件是多个文件的集合,至少包括一个shp,shx以及dbf文件。...文件的话,需要根据shx文件中的信息读取shp中的二进制数据并转化为几何对象,然后再读取dbf表格,将属性添加到几何对象上就完成了对一个Shapefile文件的解析....英文好的同学,请转移到这里:ESRI Shapefile Technical Desc GDAL中矢量数据组织 GDAL中的栅格数据使用OGRDataSource表示(OGRDataSoruce是抽象类...Shapefile文件,并读取空间要素及其属性。
问题 FME打开Shapefile数据,字段名偶尔会有乱码的情况。 数据特点 经常有朋友会问,我的数据,ArcGIS里没问题的,怎么FME一读就乱码了? 划重点:ArcGIS里打开正常!...解决问题的思路 换种方式读取? 上面简单的划了个重点,ArcGIS里打开正常,那么我就想,FME能不能以ArcGIS读取Shapefile的方式将数据读进来呢? 用什么方式来读?...经过查找相关资料、帮助文档,我发现,FME是可以以ArcGIS读Shapefile的方式来读这种数据的。...其实,当我们用ArcGIS读取Shapefile数据的时候,你在导航栏里看到的,已经不是Shapefile了。如下图所示: ?...怎么用FME读取ArcGIS Layer? 那么这个Feature Layer在FME中叫什么呢? 经过一段时间的摸索,我发现FME中这样一种格式:Esri ArcGIS Layer。
基本思路 使用GDAL创建Shapefile数据的基本步骤如下: 使用osgeo.ogr.Driver的CreateDataSource()方法创建osgeo.ogr.DataSource矢量数据集...使用osgeo.ogr.DataSource的CreateLayer()方法创建一个图层 使用osgeo.ogr.FieldDefn()定义Shapefile文件的属性字段 创建osgeo.ogr.Feature...Feature对象以后,使用osgeo.ogr.Layer的CreateFeature()添加Feature对象到当前图层 重复步骤4和5依次添加所有的Feature到当前图层即可 代码实现 下面的例子中,我们读取...GeoJSON表示的中国省区数据,然后其转为Shapefile格式。...可以看到每个Feature都有一个properties字段和geometry字段,我们需要根据properties字段的信息创建Shapefile数据的属性表,根据geometry字段创建Shapefile
基本思路 使用Fiona写入Shapefile数据,主要是构建一个Schema,然后将空间对象转为GeoJSON的形式进行写入。...代码实现 这里我们举两个例子进行说明:第一是将GeoJSON数据转为Shapefile,第二个是新建一个Shapefile,然后再里面写入自定义的空间几何数据。...GeoJSON的格式定义,参见:创建Shapefile文件并写入数据。...'name': 'str'}} # 使用fiona.open方法打开文件,写入数据 with fiona.open('Provinces.shp', mode='w', driver='ESRI Shapefile...='utf-8') as layer: # 依次遍历GeoJSON中的空间对象 for feature in data['features']: # 从GeoJSON中读取
这里介绍如何导入我们常用的ESRI Shapefile数据到PostgreSQL数据库中,我们可以使用PostGIS提供的shp2pgsql和pgsql2shp工具进行导入和导出操作,还可以使用GDAL...-s指定空间参考系,PostGIS的参考系和EPSG代码是一样的,比如EPSG:4326表示WGS84地理坐标系 -I指定在新建的关系表的空间对象的那一列建立空间索引 然后,双引号引起来的是Shapefile...---- 下面说说数据的导出,我们可以使用psql2shp工具导出数据为Shapefile文件。
java中很多关于文件读取的工作。 操作也很平凡。 所以java的文件读取是很重要的一部分。 首先是单字节的读取工作。...见源代码: package ReadFile; import java.io.FileReader; import java.io.IOException; public class readFile...e.printStackTrace(); } } public static void main(String[] args) { readfile("e:\\dd.txt"); } } 这里是但读取每个自己或字符...如果要进行按行读取的话,必须采用BufferedReader BufferedReader中的readline(); package ReadLime; import java.io.BufferedReader...; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException
最近在处理数据,需要筛选陆地、海洋还有特定区域的信息进行分析,主要还是利用shapefile文件创建mask文件,然后进行筛选。...比如,这里我们将降水之类的站点数据读取到 ds 变量之中,其中包含了经纬度信息,那么我们就可以按照如下方式进行筛选了,下图是筛选站点分布: import xarray as xr mask = xr.open_dataset...lat, method='nearest') ocean_sta = ds[idx.data < 1] land_sta = ds[idx.data > 0] 站点筛选可视化 当然也可以利用其它shapefile...文件创建mask文件筛选数据,比如江苏省shapefile文件。
领取专属 10元无门槛券
手把手带您无忧上云