63

I do not know ArcPy, but I work with shapefiles and raster in Python for years For processing shapefiles in Python, there are many modules like osgeo/ogr, Fiona, Pysal or Pyshp (shpUtils is one of them and not the most used), and others, see Pypi: GIS and examples on gis.stackexchange and many examples on the Web (not only in English). Most of them are much ...


24

I'm Leaflet author. There's an awesome clustering plugin for this, Leaflet.markercluster. It's very fast and efficient (take a look at 50k markers example), looks and works very smoothly with nice animations, and has lots of options to suit to your needs.


21

Short answer: you can get it using a custom SVG. See bottom of this post for one. Long answer: I believe it is better to represent it than to modify the line geometry. Should you want to move an edge or do other actions on the geometry, it would be a nightmare to manage if the wiggles are part of the geometry instead of just a representation of a straight ...


20

I'm a little late to the party but here is another suggestion: http://potree.org/ It's an open souce, WebGL based point cloud viewer I've been working on for quite a while. == UPDATE == It can render large amounts of colored point clouds. LIDAR data without colors will be supported soon. Showcase: http://potree.org/wp/demo/ Source code: https://github....


18

I propose a solution using PyQGIS. It should work both for Linestring and MultiLineString layers. This solution is based on the creation of semicircular rings, so you need to set a value for the diameter (i.e. the step variable in the code below). The step you choose won't be the real step used because it is adjusted on the basis of the line length (but it ...


17

You Can use ogr2ogr. Simplest to install it would be to download fwTools. the following command will do ogr2ogr -f "GeoJSON" E:\lakes.geojson e:\lakes.gml Else if you have QuantumGIS, you can add your GML layer to map and by Right-Clicking the Layer, Select Save As to GeoJSON format.


17

I've had similar problems where I want to visualize shapefiles quickly, and I've always found the Matplotlib way quite a lengthy way to accomplish such a small task. Instead I developed the "Python Geographic Visualizer" module, or GeoVis for short. Update: v0.2.0 is now out with lots of new functionality. With it visualizing shapefiles couldn't be easier: ...


16

You can use TileMill and render points as raster images, with fast interactivity from UTFGrid. It scales to millions of points and polygons, like this census map, since it intelligently sends only the data needed for specific areas, exactly when it's needed. As far as I know, there are no other fast methods for doing this other than having a very fast WFS ...


16

1) For a full 3D GIS, the better is GRASS GIS, look at Screenshots of 3D data management or From drone-aerial pictures to DEM and ORTHOPHOTO: the case of Caldonazzo's castle, from example. Some examples (interactive: you can scale, rotate the representation and many other things) : DEM with 3D points: Draped raster on the DEM Draped geological map with ...


14

I came across a number of tutorials dealing with this topic that I wanted to share: So You’d Like To Make a Map Using Python - Stephan Hügel How to Make a US County Thematic Map Using Free Tools - Nathan Yau A Thematic Map in Python - Daniel Lewis Creating Map Visualizations in <10 lines of Python - Rob Story You might also consider using R: How to ...


14

It is very straightforward - but you won't get a set of automatic styles for each level. Under 'style', in 'symbol layer type', select a 'line pattern fill': Add more symbol layers (the green + button in the image above) with line layers at different angles to get crosshatching: To replicate the map you showed as an example, you'll want to do a 'graduated' ...


13

There are benefits and drawbacks to each way of doing it. To make a long story short, I would recommend creating "bins." A couple of notes to help you choose, and about designing choropleths in general: A direct mapping of data value to color (an 'unclassed' map) could be considered the most accurate way to display the data, however classified maps (maps ...


12

I propose an approach that only recurs to a geometry generator and a custom function. Before starting, I want to underline that I will focus the attention on the explanation of the minimal things to do for reproducing the desired result: this means that some other minor parameters (like sizes, widths and so on) should be easily adjusted by you for better ...


10

This requires a kind of "field calculation" in which the value computed (based on a latitude, longitude, central azimuth, uncertainty, and distance) is the bowtie shape rather than a number. Because such field calculation capabilities were made much more difficult in the transition from ArcView 3.x to ArcGIS 8.x and have never been fully restored, nowadays ...


10

Polygonize your raster shape via the Raster-to-polygon tool in the raster menu. Use your field value as category Click on categorized styling, classify and double click on the symbol. Then select "SVG-FILL" and the following dialog should appear with some basic SVG icons coming with QGIS. Choose an icon and remember to set the border line ("simple line") ...


10

If you want to use symbology only, I propose a solution inspired by my answer from a similar question: Creating sector lights in QGIS?. Following a similar approach, and assuming you are working on a Projected CRS (instead, if you are using a Geographic Coordinate System, see the note at the end of the answer), I want to underline that I will focus the ...


9

Have you looked into the leaflet clusterer? A blog post by the author describes it here Another option worth a look may be to use leaflet in combination with GIS Cloud. Take a look at this demo to see it handle a lot of geometries very quickly. Very impressive. I am in no way affiliated with GISCloud.


9

Assuming to start from a point layer having this Attribute Table: you can perform the third step: "Shape of marker denotes if the soil samples were taken in "topsoil" or "other"." by firstly going to Properties >> Style and then applying these settings: Once you have done this, click Edit... from the button near the several symbols: and type ...


8

Map creation is divided into several steps: entering the geodata (which are points, lines and polygons with appropriate tags) styling (specify feature appearance on the map) rendering into a raster image (transform geodata and style into an image using rendering software) You would want a tool that does all the quirks for you behind an easy to use UI. But ...


8

You should never display millions of points on a map. Not only because of the major performance problems, but also from a user's perspective because for them it most certainly will be difficult to interpret this data. Use some means of aggregating the data (clustering, aggregating to polygon areas etc.) combined with different display types at different zoom ...


8

The examples in your link look like the coordinates have been transformed via a shear and a scale matrix. You can easily apply this to the coordinates you get from the usual fortify/join data that ggplot requires. Need a unique character ID value: oregon.tract$id=as.character(1:nrow(oregon.tract)) Fortify on that ID and join attribute data: ofort = ...


8

In the layer styles panel if you click on simple marker, there is a small box to the right of the fill color combo box - if you click on it you can select edit from the menu and enter the expression editor. You will need an expression like this, to convert your string's spaces to commas and then into a colour: color_rgb( replace("rgbfargeko",' ',',')) ...


7

Here is a method for doing Alpha By Value in QGIS http://nathanw.net/2013/06/27/alpha-by-value-choropleth/ You can use the new ramp_color and scale_linear functions and data defined symbols regexp_replace( ramp_color('usa', scale_linear( "unemployed_by_county_xgv_Rate",0,15,0,1)),',[^,]*$',','|| toint(scale_linear("unemployed_by_county_xgv_Labor_Force",0,...


7

From what I can see in the pictures you posted, there is not much variation in the heatmap raster. Try decreasing the radius value to better preserve local variations. Update: Without seeing your settings, I can only guess that you set the radius to a value smaller than the cell size. That will obviously cause problems. Decrease the cell size but note that ...


7

NOAA's National Operational Hydrologic Remote Sensing Center has an interesting daily snowfall dataset. Their daily archive is in KML format and goes back to 2005.


7

Very interesting question! Found a couple more examples and included a brief quote and their citation (quite fun to see how GIS software can be used in completely nongeographical applications): LASER CONFOCAL MICROSCOPY AND GEOGRAPHIC INFORMATION SYSTEMS IN THE STUDY OF DENTAL MORPHOLOGY "...original specimens of Recent teeth can often be optically ...


7

A few days ago a new plugin was added to QGIS called Wedge Buffer Processing Algorithm. This looks as if it might be of interest. As the name suggests it's a processing algorithm, so you'll need to run it from the processing toolbox. Not had a chance to try it yet though. It creates sectors of circles - like a normal circular buffer, but the wedge angle ...


7

You can now do this with the geometry generator in QGIS 2.99/3.0 by using buffer(collect($geometry),0) in the expression builder. The new collect() aggregate function collects all the feature geometries into a multipolygon; buffer() converts it into a single polygon to be styled as such.


7

Another approach is to use nested Rule-based styling for "study name" and "topsoil / other" categorical fields, followed by size assistant for "sample numbers". Starting from Layer Properties | Style , choose Rule-based where you will see only one single circle symbol. (1) Parent rule "Topsoil or Other" - Shape Double-click to call Rule properties dialog ...


7

You can define your own color palette by concatenating two predefined color palettes and your desired gray color as: [red orange yellow palette] + [zero gray color] + [blues palette]. To get zero value aligned with the gray color you have to use the same number of colors (n) for the predefined color palettes. Try the commented code below: # Load ...


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