Questions tagged «performance»

性能涉及计算系统如何有效利用资源。

7
创建具有GISCloud等渲染性能的矢量多边形?
我一直在寻找一种可靠的解决方案,该解决方案使我可以创建网络地图并覆盖矢量多边形,而无需花费太多时间来加载此类数据,目的是使我能够使每个多边形在悬停事件上显示不同的颜色。 据我所知,可以通过3种画布,SVG,Flash来实现这一目标。 如果Flash能在苹果iPhone / iPad上运行,它似乎是最好的解决方案,因为它似乎提供了最快的渲染速度和最干净的显示效果。画布似乎是第二好的选择,但是如果您要在地图上显示数百个多边形,则花费非常长的时间,而SVG需要花费更长的时间来渲染。 我几乎找不到希望解决该问题的解决方案的希望,但今天我遇到了一家名为GISCloud http://www.giscloud.com的公司(当前处于Beta版,具有免费注册)。 这家公司使SOMEHOW设法找到了一种惊人的方式来近乎实时地在地图上渲染数百个矢量。我对他们的方法感到惊讶,我向社区提出的问题与我们如何复制他们的方法以与现有技术一起使用,如传单,开放层,蜡... 通过查看此惊人的演示来自己看看:http : //www.giscloud.com/map/284/africa 确保将鼠标悬停在页面上的所有多边形上,并测试缩放控件,以确保这些多边形确实是矢量。 通过查看带有Firebug的请求,我已经注意到,该地图正在请求特定的json文件。似乎根据缩放级别/区域,有多个json文件被请求。 我还要在这里提到,一旦giscloud将数据加载到页面上,将鼠标悬停在矢量上就可以立即更改颜色,而无需创建新请求。 例子: http://cft1.giscloud.com/t/1316509973/map284/layer1156/3/3/3.json http://cft1.giscloud.com/t/1316509973/map284/layer1156/3/5/3.json http://cft1.giscloud.com/t/1316509973/map284/layer1156/3/4/4.json http://cft1.giscloud.com/t/1316509973/map284/layer1156/3/3/4.json http://cft1.giscloud.com/t/1316509973/map284/layer1156/3/5/4.json 我假设url结构遵循标准的切片服务逻辑(例如,第3到最后一个文件夹是缩放级别...)。 无论如何,我已经分析了这些json文件的实际数据,并且看来他们使用的逻辑遵循某种逻辑,即它们仅基于这些数据值来创建矢量: 宽度/高度:它们定义每个json请求中提供的数据的宽度和高度 像素:在这里它们定义了像素值,我假设它们与某种广义点级别的一些一般x / y像素坐标有关?我猜他们会以某种方式根据缩放级别自动简化区域。我假设它们使用像素坐标,我猜想它们与经/纬度数据相比正在极大地减少需要加载的数据的大小。 样式:此处定义了两个RGB css值。“ F”代表多边形文件颜色,“ S”代表多边形边界颜色。 geom:这是我猜测它们在某种程度上定义的地方,具体定义正在加载的图块中的每个多边形,其中基于地图容器窗口定义此类数据。有趣的是,每个条目都有一个“ S”值,我假设该值用作可选属性或特征链接值,并且在每个条目的末尾都有一个区域,似乎在定义每个矢量ID的同时我猜测的层ID被用来以某种方式加入来自每个被调用的json磁贴请求的数据。 我还假设他们以某种方式找到了一种方法,可以根据需要为请求的图块加载的数据大小,自动确定并拆分每个图块需要加载的数据。 以下是这些请求之一的摘要: {"width":256,"height":256,"tile": {"pixels": [0,6461,-1,0,5,148,0,509,-1,10715,-1,1,-1,251,-1,1,-1,1,-1,251,-2,3,-1,255,-1,249,-2,5,-2,247,-1,509,-3,251,-1,2,-2,253,-2,252,-2,254,-1,255,-1,254,-1,255,-1,1276,-2,13,-1,233,-1,2,-1,253,-1,1,-1,255,-1,247,-1,1306,-1,1533,-1,1269,-1,1276,-1,2303,-1]}, "styles": [{"f":"rgb(99,230,101)","s":"rgb(5,148,0)","lw":"0"}], "geom": [ {"s":0,"p":[4,143,5,144,3,146,1,146,2,143,4,143],"c":"layer1156_5098"}, {"s":0,"p":[-2,143,0,140,2,141,2,144,1,146,-2,144,-2,143],"c":"layer1156_5067"}, {"s":0,"p":[7,143,5,144,4,143,2,143,2,141,5,138,6,139,5,141,7,143],"c":"layer1156_5051"}, {"s":0,"p":[10,141,11,137,12,137,14,137,12,142,9,143,9,142,10,141],"c":"layer1156_5041"}, {"s":0,"p":[1,136,0,140,-2,143,-2,136,1,136],"c":"layer1156_5038"}, {"s":0,"p":[8,143,5,141,5,137,8,136,10,137,10,141,8,143],"c":"layer1156_5033"}, {"s":0,"p":[5,137,2,141,0,140,1,136,1,136,2,135,3,136,5,137],"c":"layer1156_5028"}, {"s":0,"p":[10,134,12,136,11,138,8,135,10,134],"c":"layer1156_5020"}, {"s":0,"p":[-2,133,0,136,-2,136,-2,133],"c":"layer1156_5005"}, …

7
为生产环境调整PostGIS?
在为生产环境调整PostGIS时,您遇到了哪些对PostGIS有帮助的文档? 我想和我的DBA一起设置适合生产的Postgresql / PostGIS安装。我已经读到要实现此目标需要进行一些调整,我希望在折射网站上找到答案。 到目前为止,我已经在OpenGeo网站上找到了一些有用的文档,例如本文档。 这个旧的论坛帖子是我发现有帮助的信息,这可能只是基本的DB资料,但对我来说是好资料。 我很想知道哪些资源可以帮助其他人实现PostGIS的稳定生产安装。

4
ArcGISScripting和大型空间数据集的性能
我目前正在使用arcgisscripting模块编写python脚本,以处理少量表(总数为8)标准化的相当大的数据集(总计10,000条记录)。该过程包括基于坐标元组(x,y)创建要素,并使用其他7个表中的关系作为指导来创建图形(节点和线)。最终输出是一个个人地理数据库(pgdb / fgdb),其节点和边缘空间数据集直观地表示了关系。 我最初的尝试是使用对新的地理数据库表和SearchCursor记录集的查询来为出现的多对多关系填充链接表(InsertCursor)。除15-20分钟的处理时间外,这非常有效。 使用Python中的cProfiler模块,很明显,在执行搜索查询以使用游标(搜索和插入游标)的请求填充链接表时“破坏”个人地理数据库会导致令人震惊的性能。 经过一些重构,我设法将处理时间缩短到2.5分钟以下。折衷方案是在代码中部分构建地理数据库架构,并在整理所有关系后将对arcgisscripting游标的请求限制为InsertCursors。 我的问题是表现之一。 人们在处理大数据集时使用了哪些技术来维持合理的计算时间? 我在寻求优化过程中错过了ESRI建议的方法吗? 我理解创建弧形游标时会产生的开销,特别是如果它是来自个人地理数据库的,虽然在从本网站和Google长期搜索了与性能相关的答案之后,但我的印象是性能并不是人们努力的最前沿。 作为ESRI产品的用户,有人期望并容忍这些性能落后吗? 更新 使用该产品进行一些工作之后,我积累了一系列优化技术,这些技术已将空间信息从适当格式转换为地理数据库。这是为个人和文件地理数据库开发的。花絮: 读取您的数据并将其合理化在内存中。这将使您的时间减少一半。 在内存中创建要素类和表。使用要素数据集键盘输入'in_memory'将内存用作ram磁盘,在其中执行功能,然后写出到磁盘 要写到磁盘,请使用CopyFeatureclass作为要素类,并使用CopyRow作为表。 这三件事使用了一个脚本,该脚本将100,000+个要素从30分钟转换为30-40秒,这其中包括关系类。不能轻易使用它们,上面的大多数方法都占用大量内存,如果不注意,可能会导致问题。


5
通过R中的许多多边形提高裁剪,遮罩和提取栅格的速度?
我正在从基于数千个多边形边界的栅格中提取不同土地利用类型的面积和覆​​盖率。我发现,如果我遍历每个单独的多边形并进行裁剪,然后将栅格蒙版减小到特定多边形的大小,则提取功能的运行速度会更快。尽管如此,它的运行速度很慢,我想知道是否有人对提高我的代码效率和速度有任何建议。 我发现与此相关的唯一的事情就是这个响应由Roger Bivand使用谁建议GDAL.open(),并GDAL.close()作为以及getRasterTable()和getRasterData()。我研究了这些内容,但过去在gdal上遇到过麻烦,并且对它的了解不够深,不知道如何实现它。 可重现的示例: library(maptools) ## For wrld_simpl library(raster) ## Example SpatialPolygonsDataFrame data(wrld_simpl) #polygon of world countries bound <- wrld_simpl[1:25,] #name it this to subset to 25 countries and because my loop is set up with that variable ## Example RasterLayer c <- raster(nrow=2e3, ncol=2e3, crs=proj4string(wrld_simpl), xmn=-180, xmx=180, ymn=-90, ymx=90) …

3
在PostGIS中执行边界框查询?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为地理信息系统堆栈交换的主题。 去年关闭。 我有一个PostgreSQL表,几乎有200万行,coordinates其形式为long 字段POINT(-73.4938 33.2405)。 假设在该字段上有一个地理空间索引,那么在任意边界框内选择所有行的最有效,最快的方法是什么? 盒子就像SW long-lat: -74.0042 40.7688,NE long-lat: -73.8809 40.7984。

4
如何优化注浆速度?
我在通过osm2pgrouting创建的postgis数据库上使用pgrouting。它在有限的数据集上表现出色(3.5k种方式,所有最短路径A *搜索均<20 ms)。 但是,由于我从Europe.osm导入了一个更大的边界框(122k方向),因此性能下降了很多(最短路径的成本约为900ms)。 我认为使用A *不会使这些边缘中的大多数受到干扰。 到目前为止,我为提高速度所做的工作: 在几何列上放置索引(无明显影响) 我的内存从8GB增加到16GB 将Postgresql内存设置(shared_buffers,effective_cache_size)从(128MB,128MB)更改为(1GB,2GB)(无明显效果) 我感觉大多数工作都在制作图形的C Boost库中完成,因此优化postgresql不会给我带来更好的结果。当我对每次搜索选择的A *行集合进行细微更改时,我有点担心boost库无法缓存我的图形,并且每次都必须重建所有122k边(即使它只会使用非常每个查询的限制子集)。而且我不知道与实际最短路径搜索相比,花了多少钱。 你们中有人在122k或更高版本的OSM数据集上使用注浆吗?我应该期待什么表现?哪些设置对性能的影响最大?

6
如何提高非常大的shapefile的渲染性能?
我有一个多边形shapefile,它具有100MB .dbf和500MB .shp文件组件。之所以这么大,是因为它被归类为整个地区的陆基。 每次我在ArcCatalog或ArcMap中查看文件并稍微移动视图窗口时,都需要从头开始重新绘制整个文件。我尝试了将空间索引和导入到地理数据库中的方法-两种方法都无法在渲染方面提供任何明显的性能改进。 Esri的帮助页面建议,为了提高shapefile的性能,用户可以对file进行一般化。尽管这显然可行,但我不想丢失任何信息。拆分文件并不理想,因为我要对整个区域进行大量的地理处理/查询。我想我可以避免一次查看整个区域-但例如,有时候,最好查看查询已选择文件的哪些部分。 我还有其他方法可以改善渲染性能吗? (从理论上讲,构建shapefile“金字塔”将是理想的-我不确定为什么ArcGIS从来不支持这种方法-至少我知道...)

2
与以前的版本相比,如何提高数据访问游标的性能?
数据访问模块是ArcGIS 10.1版引入的。ESRI对数据访问模块的描述如下(源): 数据访问模块arcpy.da是用于处理数据的Python模块。它允许控制编辑会话,编辑操作,改进的光标支持(包括更快的性能),用于在NumPy数组之间来回转换表和要素类的功能,以及对版本控制,副本,域和子类型工作流的支持。 但是,关于为何为什么游标性能比上一代游标如此提高的信息很少。 上图显示了在新da方法UpdateCursor与旧方法UpdateCursor 上进行基准测试的结果。本质上,脚本执行以下工作流程: 创建随机点(10、100、1000、10000、100000) 从正态分布中随机采样,然后使用光标将值添加到随机点属性表中的新列 针对新的和旧的UpdateCursor方法,对每个随机点方案运行5次迭代,并将平均值写入列表 绘制结果 使用da更新光标在幕后发生了什么,以将光标性能提高到图中所示的程度? import arcpy, os, numpy, time arcpy.env.overwriteOutput = True outws = r'C:\temp' fc = os.path.join(outws, 'randomPoints.shp') iterations = [10, 100, 1000, 10000, 100000] old = [] new = [] meanOld = [] meanNew = [] for x in iterations: arcpy.CreateRandomPoints_management(outws, …

6
为什么ArcGIS和QGIS之间的性能速度如此不同?
好吧,我不是程序员,而是多产的GIS用户。我知道QGIS是用C ++和ArcGIS编写的。但是最近对于我的大多数任务,我总是尝试使用QGIS,不仅因为它是免费的,而且因为它的用户体验非常好。 那里的所有GIS Gurus您能告诉我这两个系统之间速度差异的一些原因吗?老实说,由于使用ArcGIS 10的速度,这让我很痛苦,并且我有一台配备8 GB RAM的PC。

3
如何加快对栅格数据库的查询?
我在postgresql / postgis中有一个带有以下列的栅格数据库: (ID,rast,data_of_data)。 “ rast”是具有WKT格式的栅格文件的列。以下示例查询用于查找WGS84系统(30.424,-1.66)中某个点的DN值(对于2002-01-09): SELECT st_value(rast,(st_GeomFromText('POINT(30.424 -1.66)', 4326))) as val FROM my_table WHERE date_of_data='2002-01-09' 是否有一种方法(例如空间索引)来加快此类查询的速度?

3
执行GIS基准测试?
我正在网络上搜索基准(但找不到任何基准),这些基准会在耗时的任务(如山影生成,栅格重新投影,拓扑构建)中指示不同GIS软件中的硬件性能(特别是cpu)。比较不同的GIS软件,但比较不同的cpus,多线程影响,ssd等的性能。如果我从此开始,我想我需要一套标准化的数据,这些数据是公开可用的,以便任何人都可以尝试发布结果。但是有人知道这样的比较是否已经存在于任何地方?

2
PostgreSQL / PostGIS空间索引-无速度
我在PostgreSQL / PostGIS数据库中有一个空间表。其中的每一行都代表一个多边形。它具有以下形式: +----+--------+ |gid | way | +----+--------+ |241 | 01030..| 几何列是“ way”,其中包含多边形的几何。在WKT中是:POLYGON(('....'))。我正在此表上执行很多ST_Contains查询,以测试彼此是否包含两个多边形,例如: Select ST_Contains(a.way, b.way) From table AS a, table AS b Where a.gid = 15 And b.gid = 16 我想知道如何加快查询速度,并在表上添加空间索引: CREATE INDEX table_way_gist ON table USING gist(way); 但实际上我看不到速度提高。在执行ST_Contains查询之前,我在用所有多边形填充表格之后创建索引。填写表格之前是否应该添加索引?表格上是否有使用索引的特殊要求?几何圆柱路径的投影(纬线)设置为900913。 我正在使用:psql(PostgreSQL)9.1.4 / POSTGIS =“ 1.5.3”


1
理解为什么ArcPy成本路径分析工具比ArcObjects更快?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3年前关闭。 尽管我使用python创建地理处理脚本/服务,但给我的印象是,使用ArcObjects进行等效操作将具有更好的性能。 我已经发布了ArcGIS Server GP服务-RasterIO.dll崩溃了,ArcSOC.exe和ArcGIS Geoprocessing Script在桌面上运行良好,但崩溃了,成为Geoprocessing Service?在过去的两天内,有关获取使用Spatial Analyst工具用作地理处理服务的地理处理脚本的信息。我的截止日期快到了,所以我决定走SOE路线以实现所需的功能。 获得在ArcObjects的成本路径分析是相对直接使用.NET ESRI.ArcGIS.SpatialAnalyst.RasterDistanceOpClass,特别是CostDistanceFull()和CostPath()方法。 有关我的工作方式的一些代码片段: 蟒蛇 # Get Cost Path Origin and Destination Points inputPointsShp = 'D:/RasterStuff/test_points.shp' arcpy.MakeFeatureLayer_management(inputPointsShp,"origin",' "TYPE" = \'ORIGIN\' ') arcpy.MakeFeatureLayer_management(inputPointsShp,"destination",' "TYPE" = \'DESTINATION\' ') # Check out the ArcGIS Spatial Analyst extension license arcpy.CheckOutExtension("Spatial") # Execute CostDistance outCostDistance …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.