Tag Info

Hot answers tagged

41

Although this question was already answered, I thought I could chime in an give my two cents. DISCLAIMER: I worked for ESRI at the GeoDatabase team for some years and was in charge of maintaining various parts of GeoDatabase code (Versioning, Cursors, EditSessions, History, Relationship Classes, etc etc). I think the biggest source of performance problems ...


15

Since Postgis is a component of Postgres I would recommend this great book (I own it and I found it extremely valuable) on Postgres performance tuning: http://www.packtpub.com/postgresql-90-high-performance/book It starts from the basics (planning the hardware, os, etc) and then grows into explaining all those misterious configuration params that I never ...


14

PostGIS in Action, which has been released last month is a good book for worth reading. PART 1 - LEARNING POSTGIS 1 - What is a spatial database? Completed download chapter code and data 2 - Geometry Types Completed download chapter code and data 3 - Data Modeling Completed download chapter code and data 4 - Geometry Functions Completed download chapter ...


8

I can confirm that OL Canvas renderer redraws the whole layer when even a single feature needs to be redrawn. The exact point of the sources where this is implemented is this one in drawFeature. This has probably to do with the fact that the canvas is simply a bitmap so redrawing on top of it can produce artifacts if the new image is not perfectly placed on ...


8

After contacting the appropriate IT admin, I recieved the following instructions, resulting in load times closer to my expectation: ArcMap now takes ~4s, ArcCatalog ~3s to load. Install ArcGIS service pack 3 (this did not change boot time on its own) run "esriremove.reg" to remove changes made by ArcGIS to the registry, the contents of esriremove.reg are: ...


8

This is an exciting question! How big is the raster you want to query? WKTRaster is stored in the database as a BLOB. In order to find the value at a specific point, from a known (x_0, y_0) corner coordinate row/column indices (i, j) are computed using (dx, dy) steps and rotation. With (i, j) known, the ST_Value() function can access the actual data at the ...


7

I have just the same problem and was about to ask on mailing lists, so thanks to everybody! I am using Shooting Star with a million and a half rows on the routing table. It takes almost ten seconds to calculate it. With 20k rows it takes almost three seconds. I need Shooting Star because I need the turn restrictions. Here are some ideas I'm trying to ...


7

When faced with tasks like this your primary objective is to be rational. Don't change params based on 'gut feeling'. While the gut seems to works for Hollywood it does not for us who live in the real world. Well, at least not my gut ;-). You should: establish a usable and repeatable metric (like the time required by a pgrouting query) save metric results ...


7

Ensure you are storing valid geometries, otherwise unexpected errors can happen (server crashes, erroneous distance and area calculations, etc., see What are the implications of invalid geometries). I highly recommend adding check constraints to production geometry columns to make sure the geometries are valid. It is simple to add (just replace ...


7

OPENGEO has a simple tutorial that will serve as a good starting point: Tuning PostgreSQL for Spatial Although not directly related to PostGIS, I've found these two posts informative when it comes to more 'general' PostgreSQL setups: Tuning PostgreSQL on your Dedicated Server Performance Tuning PostgreSQL This presentation by PGexperts is also very ...


7

See this help document for creating multiple connections. This simple code will create multiple connections: EXEC SQL CONNECT TO testdb1 AS con1 USER testuser; EXEC SQL CONNECT TO testdb2 AS con2 USER testuser; EXEC SQL CONNECT TO testdb3 AS con3 USER testuser; You can then choose a connection to use: EXEC SQL AT connection-name SELECT ...


6

In short, it's not optimal, but it might not be too bad either... On (3) - as long as you always specify the specific fields you want, the only extra "hit" should be on the initial request for the service metadata (which will be a bit larger due to the many fields). If you know the "set" or "theme" of grouped fields your app will use (out of the 500), you ...


6

Always keep your data in a different schema than public. Keeping your data separated from the public schema will make it easier for your to updagre PostGIS and will make it easier for you to restore schema dumps. Imagine that you dump your data inside the public schema. Since dump is so nice, it will also dump table definitions and functions, so to restore ...


6

ArcMap and ArcCatalog are generally slow to open and many complain about their performance in general. I have more less the same specs on my desktop (except I have 12GB RAM, not that it matters much since ArcGIS is a 32 bit app, and a 15,000 RPM hard drive) On this machine ArcCatalog opnes in 28 seconds the first time and in 15 seconds the second time I ...


6

ArcPad is slow because Windows Mobile devices are very limited in RAM (and ArcPad is bloated). I've got two recommendations for you to marginally increase performance: Turn off all extensions that you're not using (range-finder, imagery like jpeg2000 and mr. sid). Just remember if you every use one of these you'll need to reactivate it. Use the quick ...


6

This answer is specific to QGIS shapefile display performance. In general file I/O in QGIS is handled by the GDAL and OGR libraries. If you aren't viewing all the geometries in a shapefile when you open it in QGIS then display performance will be enhanced by building a spatial index. QGIS does not use the ESRI shapefile spatial index (.sbn / .sbx) instead ...


6

When creating a spatial index on a table it is important to run "vacuum analyze <table>" after that. For finding nearest points you can use operator <-> introduced in PostGIS 2.0. It actually gives you the distance between two points. More info can be found here: http://workshops.opengeo.org/postgis-intro/knn.html SELECT id FROM nodes ORDER ...


6

I'm guessing you may have general performance issues such as labeling, layer scale rendering, transparencies..etc. If you have ArcGIS for Server license you may try using the Analyze button on the Service Editor to test a map document for these performance warnings. Service Editor helps you identify potential performance bottlenecks and errors that ...


5

We have just created a branch in git for a turn restricted shortest path @ https://github.com/pgRouting/pgrouting/tree/trsp Sorry no documentation yet, but but if you ask questions on the pgRouting list I hang out there and will respond. This code runs much faster than shooting star and is based on Dijkstra algorithm. -Steve


5

Generally, for performance computations, I try to stay away from using any ESRI related stuff. For your example, I would suggest doing the process in steps, the first step reading the data into normal python objects, doing the calculations, and then the final step converting to the final ESRI spatial format. For ~10k records, you could probably get away with ...


5

You might want to try putting del row inside of the loop as the last call after rows.updateRow{row}. Your object deletion does not take place until you are outside of the loop, so it might just be the rather large collection of row objects that you are creating. I would think that the row objects are being deleted as you go out of scope, but that might not ...


5

Hallo Merging or union as it is also often called can be more or less expensive depending on how the polygons are put together. If you start a one side and merge one polygon after another onto the resulting bigger and bigger polygon there will be a lot of work traversing the bigger resulting polygon for each added small polygon. One way to make this more ...


5

Are you connecting to a license server on a network? I've found that when I connect to our license server here at work from my home laptop, AM and AC do take longer to launch - but still not 1 minute, more like 15 seconds as opposed to about 3-5 seconds at the office. Also, as I mention in a comment in Jakub's answer, if you are referencing data (in a ...


5

I have an 80GB Intel SSD in my desktop. While it has lowered the time it takes to start programs and speeds up many I/O-heavy tasks, there has only been one situation where having an SSD made a fundamental difference in my workflow. I was using ENVI, and I had to convert a couple 5000x5000x250 binary rasters from BSQ interleave to BIP. Using a traditional ...


5

I have found the following helps to speed qgis up. Use a database for vector data - PostGIS or spatialite are both good for this, with spatial indexes on the tables. If you have to use shapefiles make sure you have built a spatial index in the properties dialog. Raster layers can show things up. I have found QGIS can be slow with jpg files. I converted ...


5

Avoiding the spatial query Since you noted buffering is computationally expensive and may be holding you back, consider this approach: Start looping through each point and round off your lat long point to a decimal place within your buffer (i.e. if your lat/long is 12.3456789/12.3456789 then get all points that begin with a lat/long of 12.34567/12.34567 or ...


4

Are you using a profiler? You are making multiple delete and store calls. These are expensive: Try: Reducing the number of times you call each function (store and delete); Merge all polygons, store only once (or a few times, after 'n' iterations); Delete only once (check ITable.DeleteSearchedRows(IFilter)); To delete only once, you can store a list of ...


4

GeoCache is not the only caching software (even if it fits nicely in the Geoserver ecosystem and UI). You could try MapCache (from the fine MapServer folks) which states to support vendor params (see last item on feature list). I could not find documentation on the matter, but the author(s) will usually answer quickly to well-termed questions. If MapCache ...


4

What you should do is put your big multipolygon in a table as single polygons (with ST_Dump) and put an index on it. Something like: CREATE TABLE big_polygon as SELECT (ST_Dump( ST_GeomFromText('a multiypolygon geom goes here',4326))).geom as geom; -- It is always great to put a primary key on the table ALTER table big_polygon ADD Column gid serial PRIMARY ...


4

There's a session on speeding up GIS servers using SSD drives at FOSS4G 2011. You can find the slides on Slideshare. It focuses on free and open source GIS servers though. But I think the same performance gains should also apply to workstations.



Only top voted, non community-wiki answers of a minimum length are eligible