31
シェープファイルの技術情報 ESRI ホワイトペーパー・シリーズ 1998 年 7 月 (2006/07/12 update) ESRI ジャパン株式会社

Shapefile j

  • Upload
    la-ula

  • View
    233

  • Download
    7

Embed Size (px)

DESCRIPTION

description

Citation preview

  • ESRI

    1998 7 (2006/07/12 update)

    ESRI

  • Copyright 1997, 1998 Environmental Systems Research Institute, Inc.

    All rights reserved.

    Printed in the United States of America.

    The information contained in this document is the exclusive property of Environmental Systems Research Institute, Inc.

    This work is protected under United States copyright law and other international copyright treaties and conventions. No

    part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including

    photocopying and recording, or by any information storage or retrieval system, except as expressly permitted in writing

    by Environmental Systems Research Institute, Inc. All requests should be sent to Attention: Contracts Manager,

    Environmental Systems Research Institute, Inc., 380 New York Street, Redlands, CA 92373-8100 USA.

    The information contained in this document is subject to change without notice.

    U.S. GOVERNMENT RESTRICTED/LIMITED RIGHTS Any software, documentation, and/or data delivered hereunder is subject to the terms of the License Agreement. In no

    event shall the Government acquire greater than RESTRICTED/LIMITED RIGHTS. At a minimum, use, duplication, or

    disclosure by the Government is subject to restrictions as set forth in FAR 52.227-14 Alternates I, II, and III (JUN

    1987); FAR 52.227-19 (JUN 1987) and/or FAR 12.211/12.212 (Commercial Technical Data/Computer Software); and

    DFARS 252.227-7015 (NOV 1995) (Technical Data) and/or DFARS 227.7202 (Computer Software), as applicable.

    Contractor/Manufacturer is Environmental Systems Research Institute, Inc., 380 New York Street, Redlands, CA 92373-

    8100 USA.

    In the United States and in some countries, ARC/INFO, ArcCAD, ArcView, ESRI, and PC ARC/INFO are registered

    trademarks; 3D Analyst, ADF, AML, ARC COGO, ARC GRID, ARC NETWORK, ARC News, ARC TIN, ARC/INFO,

    ARC/INFO LIBRARIAN, ARC/INFOProfessional GIS, ARC/INFOThe World's GIS, ArcAtlas, ArcBrowser,

    ArcCAD, ArcCensus, ArcCity, ArcDoc, ARCEDIT, ArcExplorer, ArcExpress, ARCPLOT, ArcPress, ArcScan,

    ArcScene, ArcSchool, ArcSdl, ARCSHELL, ArcStorm, ArcTools, ArcUSA, ArcUser, ArcView, ArcWorld, Atlas GIS,

    AtlasWare, Avenue, BusinessMAP, DAK, DATABASE INTEGRATOR, DBI Kit, ESRI, ESRITeam GIS, ESRIThe

    GIS People, FormEdit, Geographic Design System, GIS by ESRI, GIS for Everyone, GISData Server, IMAGE

    INTEGRATOR, InsiteMAP, MapCaf, MapObjects, NetEngine, PC ARC/INFO, PC ARCEDIT, PC ARCPLOT,

    PC ARCSHELL, PC DATA CONVERSION, PC NETWORK, PC OVERLAY, PC STARTER KIT, PC TABLES, SDE,

    SML, Spatial Database Engine, StreetMap, TABLES, the ARC COGO logo, the ARC GRID logo, the ARC NETWORK

    logo, the ARC TIN logo, the ARC/INFO logo, the ArcCAD logo, the ArcCAD WorkBench logo, the ArcData emblem,

    the ArcData logo, the ArcData Online logo, the ARCEDIT logo, the ArcExplorer logo, the ArcExpress logo, the

    ARCPLOT logo, the ArcPress logo, the ArcPress for ArcView logo, the ArcScan logo, the ArcStorm logo, the ArcTools

    logo, the ArcView 3D Analyst logo, the ArcView Data Publisher logo, the ArcView GIS logo, the ArcView Internet Map

    Server logo, the ArcView Network Analyst logo, the ArcView Spatial Analyst logo, the ArcView StreetMap logo, the

    Atlas GIS logo, the Avenue logo, the BusinessMAP logo, the BusinessMAP PRO logo, the Common Design Mark, the

    DAK logo, the ESRI corporate logo, the ESRI globe logo, the MapCaf logo, the MapObjects logo, the MapObjects

    Internet Map Server logo, the NetEngine logo, the PC ARC/INFO logo, the SDE logo, the SDE CAD Client logo, The

    World's Leading Desktop GIS, ViewMaker, Water Writes, and Your Personal Geographic Information System are

    trademarks; and ArcData, ARCMAIL, ArcOpen, ArcQuest, ArcWatch, ArcWeb, Rent-a-Tech, www.esri.com, and

    @esri.com are service marks of Environmental Systems Research Institute, Inc.

    The names of other companies and products herein are trademarks or registered trademarks of their respective trademark

    owners.

  • ESRI

    1998 7

    ------------------------------------------------------------------- 2

    ------------------------------------------------------------- 3

    *.shp -------------------------------------------------------------- 4

    ------------------------------------------------------------ 6

    *.shx --------------------------------------------------------- 22

    *.dbf ---------------------------------------------------------------- 23

    --------------------------------------------------------------------------------- 26

    1

  • ESRI ESRI

    dBASE 1 1

    ArcInfoPC ARC/INFOSpatial Database Engine (SDE)ArcViewBusinessMAP ArcView Avenue(ArcView)MapObjectsAML(ArcInfo)SML(PC ARC/INFO)

    2

  • SDEArcInfoPC ARC/INFOData Automation Kit(DAK)ArcCAD ArcInfo GPS(Global Positioning System) XY dBASE dBASE 8.3 *1)a-Z, 0-9 7 a-Z, 0-9, _, -.shp.shx.dbfOS counties.shp counties.shx counties.dbf 1) 16 OS 8.3

    OS 16 OS 8.3 8.3

    Integer 32 Double 64 IEEE NaNNoDatameasure1038NoData 2

    3

  • PCIntel SunMotorola 100 1

    4

  • Byte 0 9994 Integer Byte 4 0 Integer Byte 8 0 Integer Byte 12 0 Integer Byte 16 0 Integer Byte 20 0 Integer Byte 24 Integer Byte 28 1000 Integer Byte 32 Integer Byte 36 Xmin Double Byte 44 Ymin Double Byte 52 Xmax Double Byte 60 Ymax Double Byte 68* Zmin Double Byte 76* Zmax Double Byte 84* Mmin Double Byte 92* Mmax Double

    *measure Z 0.0

    16 50

    Null Shape

    0 Null Shape 1 Point 3 PolyLine 5 Polygon 8 MultiPoint 11 PointZ 13 PolyLineZ 15 PolygonZ 18 MultiPointZ 21 PointM 23 PolyLineM 25 PolygonM 28 MultiPointM 31 MultiPatch

    5

  • Null Shape

    X Y M Z XminYminmeasure measureMmin Mmax NoData 3 8

    Byte 0 Integer Byte 4 Integer

    24 0 Null Shape Null Point Null Point Null Shape Null Shape

    6

  • XY

    Point

    MultiPoint

    Null Shape

    Byte 0 0 Integer 1

    Point X,Y Point { Double X //X Double Y //Y }

    Point

    Byte 0 1 Integer 1 Byte 4 X X Double 1 Byte 12 Y Y Double 1

    MultiPoint Point MultiPoint { Double[4] Box // Integer NumPoints //Point Point[NumPoints] Points // Point } XminYminXmaxYmax

    MultiPoint

    Byte 0 8 Integer 1 Byte 4 Box Double 4 Byte 36 NumPoints NumPoints Integer 1 Byte 40 Points Points Point NumPoints

    7

  • PolyLine

    PolyLine 1 2 Point 2 Point PolyLine { Double[4] Box // Integer NumParts // Integer NumPoints //Point Integer[NumParts] Parts // Point Point[NumPoints] Points // Point } Box XminYminXmaxYmax NumParts PolyLine NumPoints Point Parts NumParts Point Point

    0 Points NumPoints PolyLine Points

    1 Point Parts Point Points

    PolyLine

    Byte 0 3 Integer 1

    Byte 4 Box Double 4

    Byte 36 NumParts NumParts Integer 1

    Byte 40 NumPoints NumPoints Integer 1

    Byte 44 Parts Parts Integer NumParts

    Byte X Points Points Point NumPoints

    X=44+(4NumParts)

    8

  • Polygon

    Polygon 1 4 Point Polygon Polygon Polygon Polygon 1 Polygon Polygon 2 Point Polygon PolyLine Polygon { Double[4] Box // Integer NumParts // Integer NumPoints //Point Integer[NumParts] Parts // Point Point[NumPoints] Points // Point }

    Box XminYminXmaxYmax NumParts Polygon NumPoints Point Parts NumParts Point Point

    0 Points NumPoints Polygon Points

    1 Point Parts Point Points

    Polygon

    9

  • Polygon

    Point Polygon

    Polygon 2

    Polygon 1 Polygon Polygon Polygon Polygon

    v1

    v3

    v4

    v5

    v7

    v8

    v2 v6

    NumParts = 2NumPoints = 10

    v1 v2 v3 v4 v1 v5 v8 v7 v6 v5

    Parts:

    Points:

    10

  • Polygon XY measure

    PointM

    Polygon

    Byte 0 5 Integer 1

    Byte 4 Box Double 4

    Byte 36 NumParts NumParts Integer 1

    Byte 40 NumPoints NumPoints Integer 1

    Byte 44 Parts Parts Integer NumParts

    Byte X Points Points Point NumPoints

    X=44+(4NumParts) M M NoData 3 PointM X,Y measure M PointM { Double X //X Double Y //Y Double M //measure }

    PointM

    Byte 0 21 Integer 1

    Byte 4 X X Double 1

    Byte 12 Y Y Double 1

    Byte 20 M M Double 1

    11

  • MultiPointM

    MultiPointM PointM MultiPointM { Double[4] Box // Integer NumPoints //Point Point[NumPoints] Points // Point Double[2] M Range //measure Double[NumPoints] M Array // Point measure }

    Box XminYminXmaxYmax NumPoints Point Points NumPoints Point M Range MminMmax M M Array NumPoints measure

    MultiPointM

    Byte 0 28 Integer 1 Byte 4 Box Double 4 Byte 36 NumPoints NumPoints Integer 1 Byte 40 Points Points Point NumPoints Byte X* Mmin Mmin Double 1 Byte X+8* Mmax Mmax Double 1 Byte X+16* Marray Marray Double NumPoints

    X=40+(16NumPoints) *

    12

  • PolyLineM

    PolyLineM12Point PolyLineM { Double[4] Box // Integer NumParts // Integer NumPoints //Point Integer[NumParts] Parts // Point Point[NumPoints] Points // Point Double[2] M Range //measure Double[NumPoints] M Array // Point measure }

    Box XminYminXmaxYmax NumParts PolyLineM NumPoints Point Parts NumParts Point Point

    0 Points NumPoints PolyLineM Points

    1 Point Parts Point Points

    M Range MminMmax measure M Array NumPoints measure 1 Point

    Parts Point Points

    PolyLineM

    Byte 0 23 Integer 1

    Byte 4 Box Double 4

    Byte 36 NumParts NumParts Integer 1

    Byte 40 NumPoints NumPoints Integer 1

    Byte 44 Parts Parts Integer NumParts

    Byte X Points Points Point NumPoints

    Byte Y* Mmin Mmin Double 1

    Byte Y+8* Mmax Mmax Double 1

    Byte Y+16* Marray Marray Double NumPoints

    X=44+(4NumParts)Y=X+(16NumPoints) *

    13

  • PolygonM

    PolygonM 1 XYM XY PolygonM PolygonM PolygonM PolyLineM PolygonM { Double[4] Box // Integer NumParts // Integer NumPoints //Point Integer[NumParts] Parts // Point Point[NumPoints] Points // Point Double[2] M Range //measure Double[NumPoints] M Array // Point measure }

    Box XminYminXmaxYmax NumParts PolyLineM NumPoints Point Parts NumParts Point Point

    0 Points NumPoints PolygonM Points

    1 Point Parts Point Points

    M Range MminMmax measure M Array NumPoints measure 1 Point

    Parts Point Points

    PolygonM Point

    14

  • PolygonM

    XYZ

    PointZ

    PolygonM

    Byte 0 25 Integer 1 Byte 4 Box Double 4 Byte 36 NumParts NumParts Integer 1 Byte 40 NumPoints NumPoints Integer 1 Byte 44 Parts Parts Integer NumParts Byte X Points Points Point NumPoints Byte Y* Mmin Mmin Double 1 Byte Y+8* Mmax Mmax Double 1 Byte Y+16* Marray Marray Double NumPoints X=44+(4NumParts)Y=X+(16NumPoints) *

    M M NoData 3 PointZ XYZ M PointZ { Double X //X Double Y //Y Double Z //Z Double M //measure }

    2 PointZ

    Byte 0 11 Integer 1

    Byte 4 X X Double 1

    Byte 12 Y Y Double 1

    Byte 20 Z Z Double 1

    Byte 28 M M Double 1

    X=44+(4NumParts)Y=X+(16NumPoints)Z=Y+16+(8NumPoints)

    15

  • MultiPointZ

    MultiPointZ PointZ MultiPointZ { Double[4] Box // Integer NumPoints //Point Point[NumPoints] Points // Point Double[2] Z Range //Z Double[NumPoints] Z Array // Point Z Double[2] M Range //measure Double[NumPoints] M Array // Point measure } XminYminXmaxYmax Z ZminZmax measure MminMmax

    MultiPointZ

    Byte 0 18 Integer 1

    Byte 4 Box Double 4

    Byte 36 NumPoints NumPoints Integer 1

    Byte 40 Points Points Point NumPoints

    Byte X Zmin Zmin Double 1

    Byte X+8 Zmax Zmax Double 1

    Byte X+16 Zarray Zarray Double NumPoints

    Byte Y* Mmin Mmin Double 1

    Byte Y+8* Mmax Mmax Double 1

    Byte Y+16* Marray Marray Double NumPoints

    X=40+(16NumPoints)Y=X+16+(8NumPoints) *

    16

  • PolyLineZ

    PolyLineZ 1 2 Point PolyLineZ { Double[4] Box // Integer NumParts // Integer NumPoints //Point Integer[NumParts] Parts // Point Point[NumPoints] Points // Point Double[2] Z Range //Z Double[NumPoints] Z Array // Point Z Double[2] M Range //measure Double[NumPoints] M Array // Point measure }

    Box XminYminXmaxYmax NumParts PolyLineZ NumPoints Point Parts NumParts Point Point

    0 Points NumPoints PolyLineZ Points

    1 Point Parts Point Points

    Z Range ZminZmax Z Z Array NumPoints Z 1 Point

    Parts Point Points

    M Range MminMmax measure M Array NumPoints measure 1 Point

    Parts Point Points

    17

  • PolygonZ

    PolyLineZ

    Byte 0 13 Integer 1

    Byte 4 Box Double 4

    Byte 36 NumParts NumParts Integer 1

    Byte 40 NumPoints NumPoints Integer 1

    Byte 44 Parts Parts Integer NumParts

    Byte X Points Points Point NumPoints

    Byte Y Zmin Zmin Double 1

    Byte Y+8 Zmax Zmax Double 1

    Byte Y+16 Zarray Zarray Double NumPoints

    Byte Z* Mmin Mmin Double 1

    Byte Z+8* Mmax Mmax Double 1

    Byte Z+16* Marray Marray Double NumPoints

    X=44+(4NumParts)Y=X+(16NumPoints)Z=Y+16+(8NumPoints) * PolygonZ 1 PolygonZ PolygonZ PolygonZ PolyLineZ PolygonZ { Double[4] Box // Integer NumParts // Integer NumPoints //Point Integer[NumParts] Parts // Point Point[NumPoints] Points // Point Double[2] Z Range //Z Double[NumPoints] Z Array // Point Z Double[2] M Range //measure Double[NumPoints] M Array // Point measure }

    18

  • Box XminYminXmaxYmax NumParts PolygonZ NumPoints Point Parts NumParts Point Point

    0 Points NumPoints PolygonZ Points

    1 Point Parts Point Points

    Z Range ZminZmax Z Z Array NumPoints Z 1 Point

    Parts Point Points

    M Range MminMmax measure M Array NumPoints measure 1 Point

    Parts Point Points

    PolygonZ Point

    PolygonZ

    Byte 0 15 Integer 1

    Byte 4 Box Double 4

    Byte 36 NumParts NumParts Integer 1

    Byte 40 NumPoints NumPoints Integer 1

    Byte 44 Parts Parts Integer NumParts

    Byte X Points Points Point NumPoints

    Byte Y Zmin Zmin Double 1

    Byte Y+8 Zmax Zmax Double 1

    Byte Y+16 Zarray Zarray Double NumPoints

    Byte Z* Mmin Mmin Double 1

    Byte Z+8* Mmax Mmax Double 1

    Byte Z+16* Marray Marray Double NumPoints

    X=44+(4NumParts)Y=X+(16NumPoints)Z=Y+16+(8NumPoints) *

    19

  • MultiPatch

    MultiPatch patch MultiPatch MultiPatch

    3 2

    3

    1

    V1

    V2

    V3

    V4 V5

    V6 V7

    V1

    V2

    V3 V5 V7 V9

    V8 V6 V4

    Triangle Fan Triangle Strip

    First

    Ring

    Ring

    Outer Ring

    Inner Ring

    1

    0 1 2 3 4 5

    20

  • MultiPatch { Double[4] Box // Integer NumParts // Integer NumPoints //Point Integer[NumParts] Parts // Point Integer[NumParts] PartTypes // Point[NumPoints] Points // Point Double[2] Z Range //Z Double[NumPoints] Z Array // Point Z Double[2] M Range //measure Double[NumPoints] M Array // Point measure }

    Box XminYminXmaxYmax NumParts MultiPatch NumPoints Point Parts NumParts Point Point

    0 PartTypes NumParts Points NumPoints MultiPatch Points

    1 Point Parts Point Points

    Z Range ZminZmax Z Z Array NumPoints Z 1 Point

    Parts Point Points

    M Range MminMmax measure M Array NumPoints measure 1 Point

    Parts Point Points

    MultiPatch

    21

  • MultiPatch

    Byte 0 31 Integer 1 Byte 4 Box Double 4 Byte 36 NumParts NumParts Integer 1 Byte 40 NumPoints NumPoints Integer 1 Byte 44 Parts Parts Integer NumParts Byte W PartTypes PartTypes Integer NumParts Byte X Points Points Point NumPoints Byte Y Zmin Zmin Double 1 Byte Y+8 Zmax Zmax Double 1 Byte Y+16 Zarray Zarray Double NumPoints Byte Z* Mmin Mmin Double 1 Byte Z+8* Mmax Mmax Double 1 Byte Z+16* Marray Marray Double NumPoints

    W=44+(4NumParts)X=W+(4NumParts)Y=X+(16NumPoints)Z=Y+16+(8NumPoints) * *.shx 100 8

    22

  • 16 50

    Byte 0 Integer Byte 4 Integer

    1 100 50 *.dbf dBASE

    .dbf2

    dBASE Borland www.borland.com

    dBASE IV ESRI dBASE IV

    23

  • dBASE IV 2.0

    0 1byte Valid dBASE IV file; 0-2

    3 dBASE IV 4-6 SQL 7 dBASE III PLUS dBASE IV

    1-3 3 bytes ; YYMMDD 4-7 32-bit number 8-9 16-bit number 10-11 16-bit number 12-13 2 bytes 0 14 1 byte 15 1 byte 16-27 12 bytes 28 1 byte MDX 01H MDX 00H

    MDX 29 1 byte ID 30-31 2 bytes 0 32-n* 32 bytes each () n + 1 1 byte 0DH

    * n

    0-10 11 bytes ASCII 11 1 byte C, D, F, L, M, N 12-15 4 bytes 16 1 byte 17 1 byte 18-19 2 bytes 20 1 byte ID 21-30 10 bytes 31 1 byte MDX MDX

    01H 00H

    (0) 10

    24

  • 20H2AH end-of-file ASCII 261AH

    C (Character) OEM D (Date)

    8 YYYYMMDD F (Floating point binary

    numeric) - . 0 1 2 3 4 5 6 7 8 9

    N (Binary coded decimal numeric)

    - . 0 1 2 3 4 5 6 7 8 9

    L (Logical) ? Y y N n T t F f?

    M (Memo) OEM ( 10 .DBT

    .DBT

    .DBT .DBT 0SET BLOCKSIZE .DBT 0 .DBF 20h .DBF

    dBASE IV Language Reference manual, Appendix D

    25

  • ArcInfo

    ESRI ArcInfo EWSPCArcView GIS

    ArcCAD

    AutoCAD GIS ESRI

    ARC Macro Language (

    AML)

    ArcInfo ArcInfo

    ArcView

    ESRI GIS Windows

    Avenue

    ArcView ArcView ArcView

    SunHPIBMData GeneralAViiON UNIX

    Bounding Box

    1 XminYminXmaxYmax

    BusinessMAP

    Windows 2 3

    coverage

    ArcInfo TIC

    26

  • Data Automation Kit

    ( DAK)

    ESRI

    feature

    index file

    DEC OSF/1, DEC OpenVMS, MS-DOS, Windows NT

    MapObjects

    ActiveX OCX ActiveX GIS Windows

    MultiPoint

    1

    NumPoints

    PC ARC/INFO

    GIS ESRI ArcInfo dBASE

    PolyLine

    x,y

    x,y

    Shapefile

    ArcView 1

    27

  • Simple Macro Language

    SML

    PC ARC/INFO

    theme

    ArcView GRID

    topology

    GIS 2

    vector

    x,y x,y TINTriangulated Irregular Networks

    vertex

    x,y

    28

  • ESRI URL: http://www.esrij.com E-mail: [email protected]

    2001.2 (2006.7 )

    29

    MultiPatch