Muutke küpsiste eelistusi

Python Geospatial Development [Pehme köide]

  • Formaat: Paperback / softback, 508 pages, kõrgus x laius: 235x191 mm
  • Ilmumisaeg: 14-Dec-2010
  • Kirjastus: Packt Publishing Limited
  • ISBN-10: 1849511543
  • ISBN-13: 9781849511544
Teised raamatud teemal:
  • Pehme köide
  • Hind: 51,84 €*
  • * saadame teile pakkumise kasutatud raamatule, mille hind võib erineda kodulehel olevast hinnast
  • See raamat on trükist otsas, kuid me saadame teile pakkumise kasutatud raamatule.
  • Kogus:
  • Lisa ostukorvi
  • Tasuta tarne
  • Lisa soovinimekirja
  • Formaat: Paperback / softback, 508 pages, kõrgus x laius: 235x191 mm
  • Ilmumisaeg: 14-Dec-2010
  • Kirjastus: Packt Publishing Limited
  • ISBN-10: 1849511543
  • ISBN-13: 9781849511544
Teised raamatud teemal:
This is a tutorial style book that will teach usage of Python tools for GIS using simple practical examples and then show you how to build a complete mapping application from scratch. The book assumes basic knowledge of Python. No knowledge of Open Source GIS is required. This book is useful for Python developers who want to get up to speed with Open Source GIS in order to build GIS applications or integrate Geo-Spatial features into their applications.
Preface 1(6)
Chapter 1 Geo-Spatial Development Using Python
7(14)
Python
7(2)
Geo-spatial development
9(2)
Applications of geo-spatial development
11(6)
Analyzing geo-spatial data
12(1)
Visualizing geo-spatial data
13(3)
Creating a geo-spatial mash-up
16(1)
Recent developments
17(2)
Summary
19(2)
Chapter 2 GIS
21(26)
Core GIS concepts
21(16)
Location
22(3)
Distance
25(2)
Units
27(1)
Projections
28(1)
Cylindrical projections
29(2)
Conic projections
31(1)
Azimuthal projections
31(1)
The nature of map projections
32(1)
Coordinate systems
32(3)
Datums
35(1)
Shapes
36(1)
GIS data formats
37(2)
Working with GIS data manually
39(7)
Summary
46(1)
Chapter 3 Python Libraries for Geo-Spatial Development
47(24)
Reading and writing geo-spatial data
47(7)
GDAL/OGR
48(1)
GDAL design
48(2)
GDAL example code
50(1)
OGR design
51(1)
OGR example code
52(1)
Documentation
53(1)
Availability
53(1)
Dealing with projections
54(5)
Pyproj
54(1)
Design
54(1)
Proj
55(1)
Geod
56(1)
Example code
57(1)
Documentation
58(1)
Availability
58(1)
Analyzing and manipulating geo-spatial data
59(4)
Shapely
59(1)
Design
60(1)
Example code
61(1)
Documentation
62(1)
Availability
62(1)
Visualizing geo-spatial data
63(5)
Mapnik
63(1)
Design
64(2)
Example code
66(1)
Documentation
67(1)
Availability
68(1)
Summary
68(3)
Chapter 4 Sources of Geo-Spatial Data
71(30)
Sources of geo-spatial data in vector format
72(13)
OpenStreetMap
72(1)
Data format
73(1)
Obtaining and using OpenStreetMap data
74(2)
TIGER
76(1)
Data format
77(1)
Obtaining and using TIGER data
78(1)
Digital Chart of the World
79(1)
Data format
80(1)
Available layers
80(1)
Obtaining and using DCW data
80(2)
GSHHS
82(1)
Data format
83(1)
Obtaining the GSHHS database
84(1)
World Borders Dataset
84(1)
Data format
85(1)
Obtaining the World Borders Dataset
85(1)
Sources of geo-spatial data in raster format
85(9)
Landsat
86(1)
Data format
86(1)
Obtaining Landsat imagery
87(3)
GLOBE
90(1)
Data format
90(1)
Obtaining and using GLOBE data
91(1)
National Elevation Dataset
92(1)
Data format
92(1)
Obtaining and using NED data
93(1)
Sources of other types of geo-spatial data
94(4)
GEOnet Names Server
94(1)
Data format
95(1)
Obtaining and using GEOnet Names Server data
95(1)
GNIS
96(1)
Data format
97(1)
Obtaining and using GNIS data
97(1)
Summary
98(3)
Chapter 5 Working with Geo-Spatial Data in Python
101(44)
Prerequisites
101(1)
Reading and writing geo-spatial data
102(13)
Task: Calculate the bounding box for each country in the world
102(2)
Task: Save the country bounding boxes into a Shapefile
104(4)
Task: Analyze height data using a digital elevation map
108(7)
Changing datums and projections
115(7)
Task: Change projections to combine Shapefiles using geographic and UTM coordinates
115(4)
Task: Change datums to allow older and newer TIGER data to be combined
119(3)
Representing and storing geo-spatial data
122(5)
Task: Calculate the border between Thailand and Myanmar
123(3)
Task: Save geometries into a text file
126(1)
Working with Shapely geometries
127(5)
Task: Identify parks in or near urban areas
128(4)
Converting and standardizing units of geometry and distance
132(9)
Task: Calculate the length of the Thai-Myanmar border
133(6)
Task: Find a point 132.7 kilometers west of Soshone, California
139(2)
Exercises
141(2)
Summary
143(2)
Chapter 6 GIS in the Database
145(46)
Spatially-enabled databases
145(1)
Spatial indexes
146(3)
Open source spatially-enabled databases
149(15)
MySQL
149(3)
PostGIS
152(1)
Installing and configuring PostGIS
152(3)
Using PostGIS
155(2)
Documentation
157(1)
Advanced PostGIS features
157(1)
SpatiaLite
158(1)
Installing SpatiaLite
158(1)
Installing pysqlite
159(1)
Accessing SpatiaLite from Python
160(1)
Documentation
160(1)
Using SpatiaLite
161(2)
SpatiaLite capabilities
163(1)
Commercial spatially-enabled databases
164(1)
Oracle
164(1)
MS SQL Server
165(1)
Recommended best practices
165(13)
Use the database to keep track of spatial references
166(2)
Use the appropriate spatial reference for your data
168(1)
Option 1 Use a database that supports geographies
169(1)
Option 2 Transform features as required
169(1)
Option 3 Transform features from the outset
169(1)
When to use unprojected coordinates
170(1)
Avoid on-the-fly transformations within a query
170(1)
Don't create geometries within a query
171(1)
Use spatial indexes appropriately
172(1)
Know the limits of your database's query optimizer
173(1)
MySQL
174(1)
PostGIS
175(2)
SpatiaLite
177(1)
Working with geo-spatial databases using Python
178(11)
Prerequisites
179(1)
Working with MySQL
179(3)
Working with PostGIS
182(2)
Working with SpatiaLite
184(4)
Speed comparisons
188(1)
Summary
189(2)
Chapter 7 Working with Spatial Data
191(68)
About DISTAL
191(4)
Designing and building the database
195(4)
Downloading the data
199(2)
World Borders Dataset
200(1)
GSHHS
200(1)
Geonames
200(1)
GEOnet Names Server
200(1)
Importing the data
201(9)
World Borders Dataset
201(2)
GSHHS
203(2)
US placename data
205(3)
Worldwide placename data
208(2)
Implementing the DISTAL application
210(25)
The "Select Country" script
212(2)
The "Select Area" script
214(1)
Calculating the bounding box
215(1)
Calculating the map's dimensions
216(2)
Setting up the datasource
218(2)
Rendering the map image
220(3)
The "Show Results" script
223(1)
Identifying the clicked-on point
223(2)
Identifying features by distance
225(8)
Displaying the results
233(2)
Application review and improvements
235(22)
Usability
236(1)
Quality
237(1)
Placename issues
237(1)
Lat/Long coordinate problems
238(1)
Performance
239(1)
Finding the problem
240(2)
Improving performance
242(2)
Calculating the tiled shorelines
244(6)
Using the tiled shorelines
250(2)
Analyzing the performance improvement
252(1)
Further performance improvements
252(1)
Scalability
253(4)
Summary
257(2)
Chapter 8 Using Python and Mapnik to Generate Maps
259(62)
Introducing Mapnik
260(5)
Creating an example map
265(4)
Mapnik in depth
269(40)
Data sources
269(1)
Shapefile
270(1)
PostGIS
270(2)
GDAL
272(1)
OGR
273(1)
SQLite
274(1)
OSM
275(1)
PointDatasource
276(1)
Rules, filters, and styles
277(1)
Filters
277(2)
Scale denominators
279(1)
"Else" rules
280(1)
Symbolizers
281(1)
Drawing lines
281(6)
Drawing polygons
287(2)
Drawing labels
289(9)
Drawing points
298(3)
Drawing raster images
301(2)
Using colors
303(1)
Maps and layers
304(1)
Map attributes and methods
305(1)
Layer attributes and methods
306(1)
Map rendering
307(2)
MapGenerator revisited
309(5)
The MapGenerator's interface
309(1)
Creating the main map layer
310(2)
Displaying points on the map
312(1)
Rendering the map
313(1)
What the map generator teaches us
313(1)
Map definition files
314(3)
Summary
317(4)
Chapter 9 Web Frameworks for Python Geo-Spatial Development
321(42)
Web application concepts
322(12)
Web application architecture
322(1)
A bare-bones approach
322(1)
Web application stacks
323(1)
Web application frameworks
324(1)
Web services
325(2)
Map rendering
327(1)
Tile caching
327(3)
Web servers
330(1)
User interface libraries
331(1)
The "slippy map" stack
332(2)
The geo-spatial web application stack
334(1)
Protocols
334(10)
The Web Map Service (WMS) protocol
334(3)
WMS-C
337(1)
The Web Feature Service (WFS) protocol
337(2)
The TMS (Tile Map Service) protocol
339(5)
Tools
344(15)
Tile caching
344(1)
TileCache
345(1)
mod_tile
346(1)
TileLite
347(1)
User interface libraries
347(1)
OpenLayers
348(3)
Mapiator
351(2)
Web application frameworks
353(1)
GeoDjango
353(3)
MapFish
356(1)
TurboGears
357(2)
Summary
359(4)
Chapter 10 Putting it All Together: A Complete Mapping Application
363(34)
About the ShapeEditor
363(4)
Designing the application
367(4)
Importing a Shapefile
367(2)
Selecting a feature
369(1)
Editing a feature
370(1)
Exporting a Shapefile
371(1)
Prerequisites
371(1)
The structure of a Django application
372(7)
Models
374(1)
Views
374(3)
Templates
377(2)
Setting up the database
379(1)
Setting up the GeoDjango project
380(2)
Setting up the ShapeEditor application
382(1)
Defining the data models
383(5)
Shapefile
383(1)
Attribute
384(1)
Feature
384(1)
AttributeValue
385(1)
The models.py file
385(3)
Playing with the admin system
388(7)
Summary
395(2)
Chapter 11 ShapeEditor: Implementing List View, Import, and Export
397(28)
Implementing the "List Shapefiles" view
397(4)
Importing Shapefiles
401(16)
The "import shapefile" form
402(3)
Extracting the uploaded Shapefile
405(3)
Importing the Shapefile's contents
408(1)
Open the Shapefile
408(1)
Add the Shapefile object to the database
409(1)
Define the Shapefile's attributes
410(1)
Store the Shapefile's features
411(2)
Store the Shapefile's attributes
413(3)
Cleaning up
416(1)
Exporting Shapefiles
417(7)
Define the OGR Shapefile
418(1)
Saving the features into the Shapefile
419(1)
Saving the attributes into the Shapefile
420(2)
Compressing the Shapefile
422(1)
Deleting temporary files
422(1)
Returning the ZIP archive to the user
423(1)
Summary
424(1)
Chapter 12 ShapeEditor: Selecting and Editing Features
425(48)
Selecting a feature to edit
426(31)
Implementing the Tile Map Server
426(9)
Setting up the base map
435(2)
Tile rendering
437(5)
Using OpenLayers to display the map
442(5)
Intercepting mouse clicks
447(4)
Implementing the "find feature" view
451(6)
Editing features
457(7)
Adding features
464(3)
Deleting features
467(1)
Deleting Shapefiles
468(2)
Using ShapeEditor
470(1)
Further improvements and enhancements
470(1)
Summary
471(2)
Index 473
Erik Westra has been a professional software developer for over twenty five years and by choice has worked almost exclusively in Python for the past decade. Erik's early interest in graphical user-interface design led to the development of one of the most advanced urgent courier dispatch systems used by messenger and courier companies worldwide. In recent years, Erik has been involved in the design and implementation of systems matching seekers and providers of goods and services across a range of geographical areas. This work has included the creation of real-time geocoders and map-based views of constantly changing data. Erik is based in New Zealand, but works for companies worldwide.