SHP to GML – Convert Shapefile to Geography Markup Language

Shape file shp to GML conversion is required when you carry data from one place to another. Shapefiles are heavy as compared with GML (Geography Markup Language). On the other hand we can say that GML makes you able to do many of the same things that you would do with heavyweight desktop GIS files.

Convert SHP to KML using IGIS Map Tool

GML (Geography Markup Language) is about describing kinds of geographic objects. This is XML based language that contain two part- the schema that describes the document and the instance document that contains the actual data. GML schema allows users and developers to describe generic geographic data sets that contain points, lines and polygons. Using this schema user can differentiate between geometry primitives.

GMl format composed of geometry property and attribute detail in feature member tag. Here geometry defines which primitive is available in data. Whether it is point, line or polygon. These can be multilinestring or multipolygon. The given line of GMl defines the lineString, contains attributes as MED_DESCRI, RTT_DESCRI, F_CODE_DES, ISO and ISO_country in ogr tag. The srsName(Spatial reference system name) is given is file for each geometry as EPSG number.

LineString as Example of GML file Describing feature – Know Before performing shp to gml convert

<gml:featureMember>
 <ogr:India_raods fid="India_raods.0">
 <ogr:geometryProperty><gml:LineString srsName="EPSG:4326"><gml:coordinates>77.8277403974823,35.5012774951288 77.8257523064861,35.4995003281321</gml:coordinates></gml:LineString></ogr:geometryProperty>
 <ogr:MED_DESCRI>Without Median</ogr:MED_DESCRI>
 <ogr:RTT_DESCRI>Secondary Route</ogr:RTT_DESCRI>
 <ogr:F_CODE_DES>Road</ogr:F_CODE_DES>
 <ogr:ISO>IND</ogr:ISO>
 <ogr:ISOCOUNTRY>INDIA</ogr:ISOCOUNTRY>
 <ogr:Length_km>0.30</ogr:Length_km>
 </ogr:India_raods>
 </gml:featureMember>

This also contains the bounding box of whole data with four corner latitude longitude.

<gml:boundedBy>
 <gml:Box>
 <gml:coord><gml:X>68.49822243392609</gml:X><gml:Y>7.92528433268866</gml:Y></gml:coord>
 <gml:coord><gml:X>97.33479210700925</gml:X><gml:Y>35.50128146412876</gml:Y></gml:coord>
 </gml:Box>
 </gml:boundedBy>

Convert shapefile Shp to GML (Geography Markup Language) using Ogr2Ogr –

For converting shapefile in GML format you need to have ogr2ogr utility in your system. If this is not available you can follow the given procedure.

Convert Shapefile shp to GML - Geography Markup Language
Convert Shapefile shp to GML – Geography Markup Language

After installing, you can check the availability of ogr2ogr in terminal by typing ogr2ogr, then you will be able to see the following result.

Convert- Shape file to GML

Command Line conversion – shp to gml-

Now, to convert Shapefile to GML you need to execute the following command-

Convert- Shape file to GML

In this command -f is the output file format i.e. GML then specify the output file name with .gml extension and after that input shapefile name with .shp extension.
Note- while executing this command you must check for .shx file, which contains the positional index for geometry objects.

Code- Convert shp to GML

If you want the conversion using programing or don’t want to use terminal then this can also be done using PHP. You can create a function that defined this command as string and can give this string in shell_exec() method to execute. Shell_exec() actually execute the command and returns output as string.

public function shptogml($shpfilepath,$output){
$query=”ogr2ogr -f GML $output.gml $shpfilepath”;
print_r($query);
shell_exec($query);
}

The GML output file will be something like this-

Convert Shapefile shp to GML - Geography Markup Language

Change coordinate system of GML file from shp-

Many of times, we need the output file in other coordinate system. For this we can use options of ogr2ogr utility. It has

-t_srs srs_def:

Reproject/transform to this SRS on output

-s_srs srs_def:

Override source SRS

So using these option, we can get the data in required coordinate system. So for this you can write the query as-

–> ogr2ogr -f GML -t_srs EPSG:32643 (new EPSG) -s_srs EPSG:4326 (old EPSG) newGmlFile.gml InputFile.shp

You also can visit Shapefile to GeoJSON, Shapefile to KML, Shapefile to TopoJSON, Shapfile to geopackage etc.

If you face any problem during implementing this tutorial, please let us know. Feel free to comment in given comment box.

SHP to GPX / GPS – Convert Shapefile to Global Positioning System

Shapefile shp can be converted into GPS ( Global Positioning System) using ogr2ogr utility. The GPS data is best option when routes and tracks are required in XML format. Here we will check how to convert shapefile shp to GPX / GPS.

Convert Shp to GPX – Using IGIS Map Tool

Go to Igis Map Conversion Tool . Login with registered id and password or if you are new then register with valid email id. Then tap on Switch To button select conversion in the drop down list.

Upload your file from system or drive or from drop box. After uploading the file choose the output format. And in the last click on Convert File button. You will be directed to the map where converted file is published.

Download the converted SHP to GPX file from the download icon. For detailed conversion watch the video provided below.

Details for GPX/GPS (GPS Exchange Format) and Shapefile Format Before Converting Shapefile to GPX GPS data-

GPX (GPS Exchange Format) is a light-weight XML data format for the interchange of GPS data (waypoints, routes, and tracks) between applications and Web services on the Internet. Shapefile is collection of geometry with attributes mainly comprised of three files .shp for which stores geometry, .shx which stores index and .dbf which stores data of respective attributes.

The example is given below for linestring feature of gpx version. Here metadata contains the bounding box with min (lat,long) and max (lat, long). The tag trk defines the tracks, which contains extension tag, trkseg tag and trkpt tag. Here extension tag contains all the attributes in ogr tag with values. Trkseg tag is the track segment, which is composed of track points with latitude longitude.

<gpx version=”1.1″ creator=”GDAL 2.2.2″ xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:ogr=”http://osgeo.org/gdal” xmlns=”http://www.topografix.com/GPX/1/1″ xsi:schemaLocation=”http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd”>
<metadata><bounds minlat=”7.925284332688660″ minlon=”68.498222433926088″ maxlat=”35.501281464128759″ maxlon=”97.334792107009250″/></metadata>
<trk>
<extensions>
<ogr:MED_DESCRI>Without Median</ogr:MED_DESCRI>
<ogr:RTT_DESCRI>Secondary Route</ogr:RTT_DESCRI>
<ogr:F_CODE_DES>Road</ogr:F_CODE_DES>
<ogr:ISO>IND</ogr:ISO>
<ogr:ISOCOUNTRY>INDIA</ogr:ISOCOUNTRY>
<ogr:Length_km>0.3</ogr:Length_km>
</extensions>
<trkseg>
<trkpt lat=”35.501277495128768″ lon=”77.82774039748233″>
</trkpt>
<trkpt lat=”35.499500328132093″ lon=”77.825752306486052″>
</trkpt>
</trkseg>
</trk>

Convert- Shapefile shp to GPX / GPS- Global Positioning System

Convert shp to GPX /GPS using ogr2ogr utility-

Ogr2ogr utility has some options some of them are give below,

-dsco NAME=VALUE:

Dataset creation option (format specific)

-nlt type:

Define the geometry type for the created layer. One of NONE, GEOMETRY, POINT, LINESTRING, POLYGON, GEOMETRYCOLLECTION, MULTIPOINT, MULTIPOLYGON or MULTILINESTRING.

-f option:

format_name

GPX_USE_EXTENSIONS:

By default, the GPX driver will discard attribute fields that do not match the GPX XML definition (name, cmt, etc.).

If GPX_USE_EXTENSIONS=YES is specified, extra fields will be written inside the <extensions> tag.

–> ogr2ogr -f “GPX” -dsco GPX_USE_EXTENSIONS=YES output_gpx.gpx India_raods.shp -nlt MULTILINESTRING

If you don’t have ogr2ogr utility in your system please execute the given commands to install ogr2ogr,

Convert- shp to gpx

Check the presence of utility by typing ogr2ogr in command prompt-

Convert- shp to gpx

Code to Convert GPX GPS from Shp

The conversion thing can be done in PHP using shell_exec() method, given below-

public function shptogpx ($shpfilepath,$output,$type) {
$query=”ogr2ogr -f GPX -dsco GPX_USE_EXTENSIONS=YES $output.gps $shpfilepath.shp -nlt $type”;
shell_exec($query);
}

Convert- shp to gpx

Change coordinate system of GPS/GPX file-

Changing coordinate system using ogr2ogr is a one of the simple task. It has various option, here two are given, which will help to convert the coordinate system into desired one.

-t_srs srs_def:

Reproject/transform to this SRS on output

-s_srs srs_def:

Override source SRS

So using these option, we can get the data in required coordinate system. So for this you can write the query as-

–> ogr2ogr -f GPX -t_srs EPSG:32643 (new EPSG) -s_srs EPSG:4326 (old EPSG) -dsco GPX_USE_EXTENSIONS=YES newGPX_File.gpx  InputFile.shp -nlt MULTILINESTRING

You also can visit Shapefile to GeoJSON, Shapefile to KML, Shapefile to TopoJSON, Shapfile to geopackage, Shapefile to MapInfoFile etc.

If you find any problem during implementing this tutorial, please let us know. Feel free to comment in given comment box.

Formula to Find Bearing or Heading angle between two points: Latitude Longitude

Formula to Find Bearing or Heading angle between two points. Bearing or heading angle is used to define navigation generally in the field of aircraft or marine or Vehicle navigation or while working for land surveying. So what’s the heading or bearing? How we can find bearing between the two points on earth, with the formula? Or How we can find the other point, when one point, actual traveled distance and bearing is given? Let us discuss all this points, followed with the example and experiment with the tool for calculating bearing provided in the post.

Formula to Find Bearing or Heading angle between two points: Latitude Longitude
Formula to Find Bearing or Heading angle between two points: Latitude Longitude

Bearing can be defined as direction or an angle, between the north-south line of earth or meridian and the line connecting the target and the reference point. While Heading is an angle or direction where you are currently navigating in.  This means to reach a particular destination you need to adjust your heading direction with the bearing. Generally a ‘compass’ is an instrument, which gives you the direction information for navigation. You must refer Haversine distance formula before going through this post.

Calculating Bearing or Heading angle between two points:

So if you are from GIS field or dealing with GIS application, you should know bearing and how to calculate bearing with formula. Let us look on formula and tool for bearing:

  • Let ‘R’ be the radius of Earth,
  • L’ be the longitude,
  • ‘θ’ be latitude,
  • β‘ be Bearing.

Denote point A and B as two different points, where ‘La’ is point A longitude and ‘θa’ is point A latitude, similarly assume for point B. Bearing would be measured from North direction i.e 0° bearing means North, 90° bearing is East, 180° bearing is measured to be South, and 270° to be West.

Note: If bearing is denoted with +ve or –ve initials whose values lies between 0° to 180°, then –ve is denoted for South and West sides.

Formula to find Bearing, when two different points latitude, longitude is given:

Bearing from point A to B, can be calculated as,

β = atan2(X,Y),

where, X and Y are two quantities and can be calculated as:

X = cos θb * sin ∆L

Y = cos θa * sin θb – sin θa * cos θb * cos ∆L

Lets us take an example to calculate bearing between the two different points with the formula:

  • Kansas City: 39.099912, -94.581213
  • St Louis: 38.627089, -90.200203

So X and Y can be calculated as,

X =  cos(38.627089) * sin(4.38101)

X  = 0.05967668696

And

Y = cos(39.099912) * sin(38.627089) – sin(39.099912) * cos(38.627089) * cos(4.38101)

Y = 0.77604737571 * 0.62424902378 – 0.6306746155 * 0.78122541965 * 0.99707812506

 Y = -0.00681261948

***Convert θ into radians***

So as, β = atan2(X,Y) = atan2(0.05967668696, -0.00681261948) = 1.684463062558 radians

convert it into degree

           β = 96.51°

This means, from Kansas City if we move in 96.51° bearing direction, we will reach St Louis.

You can also check video explanation of bearing angle.

Tool to find bearing angle between two lat lon points:

Check out the following IGISMap tools to work with Bearing Angle

IGISMap Bearing Angle Tool

IGISMap is a GIS based web platform providing multiple GIS applications that are most important in the field of geospatial analytics. The peculiarity of IGISMAP in the GIS Industry is its UI/UX that helps the user to perform effortless geospatial operations.

Bearing Angle tool of IGISMap can be used to create geospatial path based on bearing angle, distance and location. A path will be one or more straight lines connected between points plotted in order. User can plot required locations by simply clicking on the map or by entering address or coordinates. The path created in Bearing Angle will be available as GIS layer in the IGISMap. This GIS layer can be downloaded as GIS data in any format such as Shapefile, GeoJSON, CSV or KML.

Check https://map.igismap.com/bearing-angle to open Bearing Angle

Formula to find a lat lon point, when bearing, distance and another lat lon is given

Let us assume a condition, where you want to find out the where will an Airplane will land up, if you have following details of that Airplane, i.e actual distance it will travel, the bearing and the starting point (lat,lon)?

  • Let first point latitude be la1,
  • longitude as lo1,
  • d be distance,
  • R as radius of Earth,
  • Ad be the angular distance i.e d/R and
  • θ be the bearing,

Here is the formula to find the second point, when first point, bearing and distance is known:

  • latitude of second point = la2 =  asin(sin la1 * cos Ad  + cos la1 * sin Ad * cos θ), and
  • longitude  of second point = lo2 = lo1 + atan2(sin θ * sin Ad * cos la1 , cos Ad – sin la1 * sin la2)

You may find both the tool on separate page, with Google map working on it: (It will be update in 2 days, please visit us again)

  • Tool to Find Bearing, when two points are given
  • Tool to find other point, when bearing, distance and one of the point is given.

I hope this article will definitely help you, to find the bearing or heading. You are free to share more data related to bearing or any thing that you uses to calculate bearing and how you use navigation with bearing.

If you find anything difficulty to understand the bearing calculation, you may comment below, so that we will discuss further on finding bearing or heading angle.

Sign up and login to IGISMap Tool to check more GIS tools.

Now we are on Youtube also. Please Like, Share and Subscribe our Channel IGIS Map

How to remove gaps from a polygon layer file in ArcGIS?

How to remove gaps from a polygon layer file in ArcGIS? While preparing polygon layer file following various stages of layer preparation like

This is what making it suitable to be used by a web application as an input. While layer file should be accurate with minimum error before deploying or issuing the same to the client, which requires lots of time to make.  Obviously no client for project submission will tolerate the delay and so this task time is to be reduced. So this blog post will deal with, how reduce time duration of preparing a layer file?

If you are new to ArcGIS, I recommend you to Look for  FAQ  and Interview of ArcGIS Tutorial.

Remove gaps from a polygon layer file in ArcGIS:

This is quite possible by using ArcGIS inbuilt tools and this can be accomplished by understanding the need and using appropriate tool. A number of errors are generated at various stages of layer preparation like gap in a feature, overlap with other feature, self over and many more. These errors can be detected by selection tool or by running topology rules for every layer. But the question is removal of these errors. If there are just a hundred of polygons in layer one can remove it manually zooming on to every gap and overlap. But if there are a million or more number of polygons in a layer for example if a village has 1000 parcel on an average in a district of 600 villages, the total number of parcel in a district comes out to be 6 lakh. It takes almost equal time in preparing an error free file as much time used for preparing the layer file.

For this one task i.e. removal of gaps in a feature can be made easy and can be performed in less time by the use of a tool named Eliminate present in the Data Management toolset of ArcGIS.

Steps to remove gaps from a polygon layer file in ArcGIS

remove gaps from a polygon layer file in ArcGIS
Detection of Gaps in the polygon File

 

1.) First all gaps in a layer file should be converted to polygons using auto complete polygon tool from the editor bar.

remove gaps from a polygon layer file in ArcGIS: Forming polygons from gaps using Auto-complete tool
Forming polygons from gaps using Auto-complete tool

2.) Then these polygons should be copied to layer file.

remove gaps from a polygon layer file in ArcGIS: Copying gap polygon to main file.
Copying gap polygon to main file.

3.) Selecting all gaps in the form of polygon apply eliminate tool from data management toolset on the layer file.

remove gaps from a polygon layer file in ArcGIS: Applying Eliminate tool on the polygon file to remove gaps.
Applying Eliminate tool on the polygon file to remove gaps.

4.) The gaps are merged with the neighboring polygon having larger area or longer shared border.

In this way the work of one month can be reduced to one week or lesser. This tool should be used for removal of small gaps only. As for larger gaps the decision of merging the gap polygon in which neighboring polygon should be done by visual interpretation and analytically perspective.

If you are dealing with Raster files with ArcGIS and with multispectral band files, you may look for Pan-sharpening image using ArcGIS.

Hope this tutorial would help you to remove gaps from a layer file in ArcGIS.  While I always works in Open Source tool in GIS, I would like to make you check the QGIS and QGIS tutorials.

If you are facing any problem related to the above, then do comment below, we would look for the problem and suggestion for the same.