Title: Introduction to Oracle Spatial Using Public Data
1Introduction to Oracle Spatial Using Public Data
- Richard L. Flores
- Isinglass, Inc.
- pleides100_at_yahoo.com
2(No Transcript)
3About Me
- Schooling in Geology and Business.
- 16 years working with Geographical Information
Systems and Computer Mapping in the Oil Gas
Industry. - 15 years working with Oracle, mostly as DBA.
- Sporadic experience with Oracle Spatial since
late Oracle 7.
4Reading Material
- Clearly written with wonderful, downloadable
examples for you to work through. - Covers most features of Oracle Spatial.
5Reading Material
- Wide ranging topics on the FREE acquisition of
data and tools for the processing of geographic
data. - Great tips and insight on the field of Electronic
Cartography.
6Agenda
- Geographic Data Processing
- Cartography 101
- Oracle Spatial Products
- Oracle Spatial Basics by Example
7Geographic Data ProcessingThe Processing Steps
- Data Acquisition
- Preliminary Data Processing
- Data Storage and Retrieval
- Graphical Display (Visualization), Analysis, and
Interaction.
8Geogaphic Data ProcessingData Acquisition
- Sources
- Global Positioning Systems (GPS)
- Published and Unpublished
- Free and Commercial
- Formats
- Vector shapefiles, DLG, DXF, NTF, etc.
- Raster TIFF, GIF, etc.
9Geogaphic Data ProcessingPreliminary Data
Processing
- May Involve
- Digitization of paper maps
- Vectorization of raster images
- Transformation of Mapping Coordinates
- Geocoding calculation of geographic coordinates
from street addresses.
10Geogaphic Data ProcessingData Storage and
Retrieval
- For Oracle
- Storage
- Use of Oracles Geographic Data Model
- Database design for the integration of spatial
and non-spatial data - SQL and SQLLoader for loading data in Oracle.
- Oracles shapefile to SDO utility.
- Retrieval
- It all comes down to SQL using Oracle Spatial
stored procedures.
11Geogaphic Data ProcessingDisplay, Analysis, and
Interaction.
- Not many free programs that work with Oracle
Spatial directly, unfortunately. - Many commercial programs for displaying and
interactively querying and editing Oracle Spatial
data such as those from ESRI, Intergraph,
MapInfo, Autodesk, eSpatial, and Acquis.
12Cartography 101The Shape of the Earth Some Facts
- To accurately place a point on the earth, the
general shape of the earth must be known. These
shape models are called, datums. - The earth is not flat.1
- The earth is not a perfect sphere.
- The earths general shape is best described by a
theoretical surface called a geoid. - For mapping, geoids are approximated by reference
ellipsoids.
1
Assertions of the Flat Earth Society
notwithstanding.
13Cartography 101 The Shape of the Earth North
American Datum
- Older maps used NAD27
- Newer maps use the more accurate NAD83 made using
satellites and sophisticated electronic
equipment. - Worldwide GPS use a datum compatible to NAD83
called WGS84 - The coordinates for a point on the earth can vary
significantly depending on the datum used.
14Cartography 101 Spatial Reference Systems
- SRS are coordinate-based systems used to locate
geographical entities. - Oracle Geographic SRS Types
- Geodetic Latitude Longitude
- Projected Coordinate Systems X Y where globe
is mathematically projected onto a flat map.
15Cartography 101Why are SRS important?
- During analysis, if all spatial data is not in
the same Spatial Reference System, the geographic
layers will not overlay and the analysis will be
in error.
16Cartography 101Why are SRS important?
17Cartography 101Why are SRS important?
- During analysis, if an inappropriate Spatial
Reference System is chosen, you may introduce
unacceptable distortion into your maps.
18Cartography 101Why are SRS important?
- If you were interested in using a map to measure
land areas, you would probably not use this
Spatial Reference System.
19Cartography 101Geodetic Coordinate System
- Latitude/Longitude expressed in
Degrees/Minutes/Seconds or Decimal Degrees - Parallels Lines of latitude North () South
(-) of Equator (-90 to 90) - Meridians Lines of longitude East () West (-)
of the Prime Meridian (-180 to 180) - Oracle Uses Decimal Degrees in the odd order,
Longitude/Latitude
20Cartography 101Geodetic Coordinate System
21Cartography 101 Projected Coordinate Systems
22Cartography 101 State Plane Coordinate Systems
- Each state has defined SPCS zones which are
popular for local- and state-sized areas because
of their accuracy. - Tall States, such as TX and CA use the Lambert
Conformal Conic Projection. - Wide States, such as NY use Transverse Mercator
Projection.
California Zone III, 0403
Texas South Central Zone, 4204
23Cartography 101 Projected Coordinate Systems
- Select map projection for display based on
- How you intend to use the data
- The size and location of the area of interest
- The metric property of the map you wish to
preserve - Shape
- Area
- Distance
- Direction
- Scale
- See erg.usgs.gov/isb/pubs/MapProjections/projectio
ns.html
24Oracle ProductsOracle Locator
- Includes
- Geographic Data Model
- Query and Analysis using the Index Engine
- Some advanced geometric functions
- Free with the Standard or Enterprise Edition
25Oracle ProductsOracle Spatial Option
- Includes
- All Oracle Locator features
- More advanced spatial functions
- Location enabling geocoder
- Advanced features such as routing, network
analysis, and georaster. - Added-cost option with the Enterprise Edition
26Oracle SpatialGeneral
- An integrated set of functions and procedures
that enables spatial data to be stored, accessed,
and analyzed quickly and efficiently in an Oracle
database. - A schema (MDSYS) that prescribes the storage,
syntax, and semantics of supported geometric data
types. - A spatial indexing mechanism
- A set of operators and functions for performing
area-of-interest queries, spatial join queries,
and other spatial analyis operations. - Administrative utilities.
27Oracle SpatialSome Definitions
- The are other, more complex elements, including
collections of one or more elements called
Geometries. - A Layer is collection of Geometries having
similar attributes such a state boundaries,
roads, or rivers.
28Oracle SpatialMore on Geometries and Layers
Table, STATES LAYER
A GEOMETRY (outline) of a state is in a single
column of each row.
A GEOMETRY may contain more than one element.
29Oracle Spatial by ExampleScenario
- You wish to open an upscale beauty salon in
central Contra Costa county, California, catering
to wealthier, older women. - You would like to be close to a major
thoroughfare for ease of access. - You dont want to be too close to any competitors.
30Oracle Spatial by ExampleIdentify Types and
Sources of Data Needed to Support Decision
- Competitors Internet Search Engine
- Demographic (Age, Gender, Income) U.S. Census
Bureau - Roads U.S. Geological Survey
31Oracle Spatial by ExampleCompetitor Data Table
CREATE TABLE beauty (id
NUMBER(38), name
VARCHAR2(100), full_address
VARCHAR2(100), city_state
VARCHAR2(50),
street_number VARCHAR2(10),
street_name VARCHAR2(20),
street_type VARCHAR2(15),
street_prefix VARCHAR2(10),
street_suffix VARCHAR2(10),
city VARCHAR2(40),
state VARCHAR2(2),
postal_code VARCHAR2(16),
location MDSYS.SDO_GEOMETRY)
32Oracle Spatial by ExampleCompetitor Data
Spatial Metadata
INSERT INTO user_sdo_geom_metadata VALUES
('BEAUTY', -- Geometry
Table 'LOCATION', --
Geometry Column SDO_DIM_ARRY (
SDO_DIM_ELEMENT ('LONGITUDE', -- Longitude
Text -180, --
Lower Boundary 180,
-- Upper Boundary
0.5), -- Tolerance
SDO_DIM_ELEMENT ('LATITUDE', -- Latitude
Text -90, --
Lower Boundary 90,
-- Upper Boundary
0.5) -- Tolerance ),
8307 -- (SRID)
DatumWGS84 )
33Oracle Spatial by ExampleCompetitor Data
Spatial Index
CREATE INDEX beauty_spatial_idx ON beauty
(location) INDEXTYPE IS MDSYS.SPATIAL_INDEX
- R-Tree Index
- These are unlike regular Oracle indexes and
special steps must be taken with their
administration.
34Oracle Spatial by ExampleCompetitor Data Source
Name ---------------- ID NAME FULL_ADDRESS
CITY_STATE STREET_NUMBER STREET_NAME
STREET_TYPE STREET_PREFIX STREET_SUFFIX CITY
STATE POSTAL_CODE LOCATION
Extract list of competitors and their addresses
from Search Engine.
While very useful, it doesnt provide any
directly mappable data.
35Oracle Spatial by ExampleCompetitor Data
Geocoding
- The Geocoder will
- Standardize Address Name and,
- Using a database with the coordinates and street
addresses of each intersection, - Interpolate the location of the given address.
- Oracle Spatial Option geocoder added-cost
- Third party sells spatial database used to
calculate the coordinates
36Oracle Spatial by ExampleCompetitor Data
Geocoding
Solution Use Perl Program against internet
geocoding website.
!/usr/local/bin/perl simplest_xmlrpc.pl use
XMLRPCLite use DataDumper use strict use
warnings my where shift _at_ARGV or die
"Usage 0 \"1 Main St, Anytown, KS\"\n" my
result XMLRPCLite -gt proxy(
'http//rpc.geocoder.us/service/xmlrpc' ) -gt
geocode (where) -gt result print Dumper
result
From Mapping Hacks, Tips Tools for Electronic
Mapping
37Oracle Spatial by ExampleCompetitor Data
Geocoding
simplest_xmlrpc.pl 1355 N. Main, Walnut Creek,
CA" VAR1 'number' gt '1355',
'street' gt 'Main', 'lat' gt
'37.898365', 'state' gt 'CA',
'city' gt 'Walnut Creek', 'zip' gt
'94596', 'suffix' gt '', 'long' gt
'-122.060445', 'type' gt 'St',
'prefix' gt 'N'
Name ---------------- ID NAME FULL_ADDRESS
CITY_STATE STREET_NUMBER STREET_NAME
STREET_TYPE STREET_PREFIX STREET_SUFFIX CITY
STATE POSTAL_CODE LOCATION
38Oracle Spatial by ExampleCompetitor Data
SDO_GEOMETRY Object-Relational Type
UPDATE beauty SET location
SDO_GEOMETRY (2001, -- Geometry
Type 2-D Point 8307, --
SRID, Datum WGS84 SDO_POINT_TYPE
(-122.060445, -- Longitude
37.898365, -- Latitude NULL),
NULL, NULL )
WHERE id 430
39Oracle Spatial by ExampleCompetitor Data Data
Display
- eSpatial iSmart Explorer free on OTN
- OEM Spatial Index Advisor
- Oracle Mapviewer
- For serious users, many commercial products.
40Oracle Spatial by ExampleNon-Spatial Demographic
Data Table
CREATE TABLE census_data ( CENSUS_TRACT
VARCHAR2(10)NOT NULL, MED_HOUSE_INCOME
NUMBER(38), GENDER_TOTAL NUMBER(38),
FEMALE_GE_40 NUMBER(38))
41Oracle Spatial by ExampleNon-Spatial Demographic
Data Source
42Oracle Spatial by ExampleSpatial Census Tract
Data Source
- www.census.gov/geo/www/cob/tr_metadata.html
- Has geographic boundaries of Census Tracts which
can be loaded into Oracle Spatial. - Choose state and ARCVIEW Shapefile format to
download file for California. These files are
sometimes called ESRI Shapefiles.
43Oracle Spatial by ExampleSpatial Census Tract
Data Pre-processing
- shp2sdo utility downloadable from Oracle will
create SQL and SQLLoader data and control files
for creating Spatial objects and loading
shapefile data into Oracle Spatial.
Creates census_tracts.sql, census_tracts.ctl,
census_tracts.dat
44Oracle Spatial by ExampleSpatial Census Tract
Data Loading census_tract.sql
DROP TABLE CENSUS_TRACTS CREATE TABLE
CENSUS_TRACTS ( AREA NUMBER,
PERIMETER NUMBER, TR06_D00_ NUMBER,
TR06_D00_I NUMBER, STATE
VARCHAR2(2), COUNTY VARCHAR2(3), TRACT
VARCHAR2(6), NAME
VARCHAR2(90), LSAD VARCHAR2(2),
LSAD_TRANS VARCHAR2(50), GEOM
MDSYS.SDO_GEOMETRY)
45Oracle Spatial by ExampleSpatial Census Tract
Data Loading
- In SQLPlus
- connect spatial/spatial
- _at_census_tracts.sql
- Run SQLLoader
- sqlldr spatial/spatial census_tracts
- In SQLPlus
- connect spatial/spatial
- EXECUTE SDO_MIGRATE.TO_CURRENT(CENSUS_TRACTS,GE
OM)
46Oracle Spatial by ExampleSpatial Census Tract
Data Display
- Census tract outlines.
- You can CREATE TABLE SELECT AS on state06
and county013 to get just Contra Costa county.
47Oracle Spatial by ExampleRoad Data Source
- seamless.usgs.gov
- Bureau of Transportation Statistics from U.S.
Geological Survey. - shapefiles
48Oracle Spatial by ExampleRoad Data Display
49Oracle Spatial by ExampleAnalysis Criteria
Definition
- Within 2 miles of census tracts in which
- The Median Household Annual Income is greater
then 100K and - Over 30 of the people are women 40 years or
older - Within ½ mile of a major thoroughfare
- Not within ½ mile of a competitor
50Oracle Spatial by ExampleAnalysis Oracle
Spatial Buffers
Original Geometry Buffered Geometry
Point
Line String
Polygon
51Oracle Spatial by ExampleAnalysis Target Census
Tract Buffer
CREATE TABLE target_tract_buffer AS SELECT
SDO_AGGR_UNION(SDOAGGRTYPE(
SDOAGGRTYPE( SDO_GEOM.SDO_BUFFER(
a.geom, -- geometry column
2.00, -- Distance
0.5, 'arc_tolerance0.005 unitmile'),
-- Units 0.5)) geom FROM
census_tracts a, census_data b WHERE
b.census_tract a.name AND
b.med_house_income gt100000 AND
b.female_ge_40/b.gender_total gt 0.30 AND
a.state '06' AND
a.county '013'
52Oracle Spatial by ExampleAnalysis Target Census
Tract Buffer
53Oracle Spatial by ExampleAnalysis Target Census
Tract Buffer
54Oracle Spatial by ExampleAnalysis Major Road
Buffer
CREATE TABLE road_buffer AS SELECT prefix, name,
type, suffix, SDO_AGGR_UNION(
SDOAGGRTYPE( SDO_GEOM.SDO_BUFFER(
a.geom, -- geometry
column 0.50, --
Distance 0.5,
'arc_tolerance0.005 unitmile'), -- Units
0.5)) geom FROM roads a WHERE (name
'ACALANES' AND type 'AVE') OR (name
'ACALANES' AND type 'RD')
OR (name 'YGNACIO VALLEY' AND
type 'RD')
55Oracle Spatial by ExampleAnalysis Major Road
Buffer
56Oracle Spatial by ExampleAnalysis Competitor
Buffer
57Oracle Spatial by ExampleAnalysis Spatial
Operations
58Oracle Spatial by ExampleAnalysis Spatial
Operations
CREATE TABLE target_site_wocomp AS SELECT
SDO_AGGR_UNION(SDOAGGRTYPE(c.geom,0.5)) geom
FROM (SELECT SDO_GEOM.SDO_INTERSECTION(
a.geom, b.geom, 0.5) geom FROM
target_tract_buffer a,road_buffer b)
c)
59Oracle Spatial by ExampleAnalysis Spatial
Operations
CREATE TABLE target_site AS SELECT
SDO_AGGR_UNIION(SDOAGGRTYPE(a.geom,0.5)) geom
FROM (SELECT SDO_GEOM.SDO_DIFFERENCE(
b.geom, c.geom, 0.5) geom FROM
target_site_wocomp b,competitor_buffer
c) a -- Create spatial metadata and index for
target_site -- and target_site_wocomp after
creation.
60Oracle Spatial by ExampleAnalysis Final Display
61Introduction to Oracle Spatial Using Public Data
Any Questions?