
Security News
Software Engineering Daily Podcast: Feross on AI, Open Source, and Supply Chain Risk
Socket CEO Feross Aboukhadijeh joins Software Engineering Daily to discuss modern software supply chain attacks and rising AI-driven security risks.
aspose-gis-net
Advanced tools
Aspose.GIS for Python via .NET is a standalone API to read, write, process, convert GDB, GPX, Shapefile, GML, FileGDB, KML and other popular gis formats. Integration with DataBases and Rendering capabilities of GIS data out from the box.
Product Page | Documentation | Demos | Blog | API Reference | Search | Free Support | Temporary License | EULA
Try our free online Apps demonstrating some of the most popular Aspose.GIS functionality.
Aspose.GIS for Python via .NET is a robust API designed for developers to handle geospatial data formats without relying on external GIS software. It facilitates the reading, writing, and conversion of multiple GIS formats, along with rendering maps and performing geometry creation and analysis. This makes it an all-encompassing solution for GIS-related tasks within Python applications. It's crossplatform: Windows, MacOS, MacOS-ARM, Linux are supported.
Aspose.GIS for Python via .NET is an ultimate, flexible, stable and powerful API to work with most kinds of GIS Formats. Aspose.GIS is a cross-platform library, it is Windows x32/x64, Linux x64, and MacOS x64/Arm64 compatible.
Aspose.GIS for Python requires you to use python programming language. For the additional languages please visit Aspose.GIS Family Official Page, we recommend you to check Aspose.GIS for .NET.
Aspose.GIS for Python via .NET examples can be found on GitHub
The following are Aspose.GIS’s core features:
The following table lists the vector formats that Aspose.GIS for Python can read or write.
| Description | Format | Read | Write |
|---|---|---|---|
| ESRI Shapefile | .shp, .shx, .dbf, .qix, .cpg | ✔️ | ✔️ |
| GeoJSON | .json, .geojson | ✔️ | ✔️ |
| GeoJSON Seq | .json, .geojson | ✔️ | ✔️ |
| ESRI File Geodatabase (FileGDB) | .gdb | ✔️ | ✔️ |
| Geography Markup Language | .gml | ✔️ | ✔️ |
| Keyhole Markup Language | .kml | ✔️ | ✔️ |
| GPS Exchange Format | .gpx | ✔️ | ✔️ |
| TopoJSON | .json, .topojson | ✔️ | ✔️ |
| MapInfo Interchange Format | .mif | ✔️ | ✔️ |
| MapInfo TAB format | .tab, .dat, .dbf, .map, .id | ✔️ | ✔️ |
| OpenStreetMap (OSM) XML | .osm | ✔️ | ✔️ |
| Comma-Separated Values | .csv | ✔️ | ✔️ |
| GeoPackage | .gpkg | ✔️ | ️ |
The following table lists the supported databases. Possible, additional DB are supported, because Aspose.GIS supports unified way to work with DBs. But please note, first version of Aspose.GIS for Python via .NET has some limitation with generic methods, filtering and DB.
| Description | Read | Write |
|---------------------|------|-------|
| Post GIS | ✔️ | ✔️ |
| SQL Server (MS SQL) | ✔️ | ✔️ |
| PostgreSQL | ✔️ | ✔️ |
The following table lists the raster formats that Aspose.GIS for .NET can only read.
| Description | Format | Read |
|---|---|---|
| Geo TIFF, TIFF | .tiff, .tif | ✔️ |
| Geo Big TIFF | .tiff, .tif | ✔️ |
| Esri ASCII | .ascii | ✔️ |
| World File | (.png, .jpg, .tiff) + .pgw | ✔️ |
The following web tile formats can be loaded from the Internet.
| Format | Description |
|---|---|
| XYZ Tiles | Slippy Maps |
Maps can be rendered into the following formats.
| Format | Description |
|---|---|
| .SVG | Scalable Vector Graphics |
| .PNG | Portable Network Graphics |
| .JPG | JPEG |
| .BMP | Bitmap Image Files |
Aspose.GIS for Python can be used to develop applications for a wide range of operating systems, such as Windows (x32/x64), Linux (x64), and MacOS (x64/arm64) where Python 3.5 or later is installed.
The base .NET platform is .NET Standard 2.0
Ready to give Aspose.GIS for Python a try?
Simply run pip install aspose-gis-net from the console to fetch the package. If you already have Aspose.GIS for Python and want to upgrade the version, please run pip install --upgrade aspose-gis-net to get the latest version.
You can run the following snippets in your environment to see how Aspose.GIS works, or check out the GitHub Repository or Aspose.PSD for Python Documentation for other common use cases.
source_format_path = "sample.geojson"
destination_format_path = "output.topojson")
# Perform the conversion
VectorLayer.convert(source_format_path, Drivers.geo_json, destination_format_path, Drivers.topo_json)
# Check the list of supported drivers: esri_json, gdal, geo_json, geo_json_seq, in_memory, in_file, kml, shapefile, gpkg, osm_xml, gpx, gml, file_gdb, topo_json, map_info_interchange, map_info_tab, post_gis, sql_server, esri_ascii, geo_tiff, world_raster, jpeg_w, png_w, bmp_w, tiff_w, xyz_tiles, csv
# Please note there can be unsupported conversion pairs
bandColor = BandColor()
bandColor.band_index = 0
bandColor.min = 0
bandColor.max = 255
color = MultiBandColor()
color.red_band = bandColor
with Map(Measurement.pixels(500), Measurement.pixels(500)) as map_instance:
layer = Drivers.geo_tiff.open_layer("raster_float32.tif"))
map_instance.add(layer, color, False)
map_instance.render(output, Renderers.svg)
result = "sample_out.topojson"
with Drivers.topo_json.create_layer(result) as layer:
# Add attributes that we are going to set
layer.attributes.add(FeatureAttribute("name", AttributeDataType.STRING))
layer.attributes.add(FeatureAttribute("measurement", AttributeDataType.DOUBLE))
layer.attributes.add(FeatureAttribute("id", AttributeDataType.INTEGER))
feature0 = layer.construct_feature()
feature0.set_value("name", "name_0")
feature0.set_value("measurement", 1.03)
feature0.set_value("id", 0)
feature0.geometry = Point(1.3, 2.3)
layer.add(feature0)
feature1 = layer.construct_feature()
feature1.set_value("name", "name_1")
feature1.set_value("measurement", 10.03)
feature1.set_value("id", 1)
feature1.geometry = Point(241.32, 23.2)
layer.add(feature1)
input = "InputShapeFile.shp"
with VectorLayer.open(input, Drivers.shapefile) as layer:
for i in range(layer.count):
feature = layer[i]
# case 1
name_value = feature.get_value("name") # attribute name is case-sensitive
age_value = feature.get_value("age")
dob_value = datetime.fromisoformat(feature.get_value("dob")).strftime("%Y-%m-%d")
print(f"Attribute value for feature #{i} is: {name_value}, {age_value}, {dob_value}")
# case 2
obj_name = feature.get_value("name") # attribute name is case-sensitive
obj_age = feature.get_value("age")
obj_dob = feature.get_value("dob")
print(f"Attribute object for feature #{i} is: {obj_name}, {obj_age}, {obj_dob}")
point_geometry = Point(40.7128, -74.006)
line_geometry = LineString()
line_geometry.add_point(78.65, -32.65)
line_geometry.add_point(-98.65, 12.65)
geometry_collection = GeometryCollection()
geometry_collection.add(point_geometry)
geometry_collection.add(line_geometry)
for geometry in geometry_collection:
if geometry.geometry_type == GeometryType.POINT:
point = geometry
assert str(point) == "POINT (40.7128 -74.006)"
elif geometry.geometry_type == GeometryType.LINE_STRING:
line = geometry
assert str(line) == "LINESTRING (78.65 -32.65, -98.65 12.65)"
# Getting the Centroid
polygon = Polygon()
ring = LinearRing()
ring.add_point(1, 0)
ring.add_point(2, 2)
ring.add_point(0, 4)
ring.add_point(5, 5)
ring.add_point(6, 1)
ring.add_point(1, 0)
polygon.exterior_ring = ring
# Get the centroid of the polygon
centroid = polygon.get_centroid()
# Get the point on surface. Point on surface is guaranteed to be inside a polygon.
point_on_surface = polygon.get_point_on_surface()
# Get the Area of Polygon.
area = multi_polygon.polygon()
from aspose.gis import License
license = License()
licensePath = "PathToLicenseFile"
license.set_license(licensePath)
Product Page | Documentation | Demos | Blog | API Reference | Search | Free Support | Temporary License | EULA
FAQs
Aspose.GIS for Python via .NET is a standalone API to read, write, process, convert GDB, GPX, Shapefile, GML, FileGDB, KML and other popular gis formats. Integration with DataBases and Rendering capabilities of GIS data out from the box.
We found that aspose-gis-net demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Socket CEO Feross Aboukhadijeh joins Software Engineering Daily to discuss modern software supply chain attacks and rising AI-driven security risks.

Security News
GitHub has revoked npm classic tokens for publishing; maintainers must migrate, but OpenJS warns OIDC trusted publishing still has risky gaps for critical projects.

Security News
Rust’s crates.io team is advancing an RFC to add a Security tab that surfaces RustSec vulnerability and unsoundness advisories directly on crate pages.