Saturday, February 7, 2026

Visualizing Common GIS Digitizing Errors

 To help visualize common GIS digitizing errors, I have created a comprehensive SVG graphic using Inkscape software. Each error is isolated and labeled to demonstrate the specific topological or geometric issue it represents.


The SVG file is here below, copy the SVG code into a text editor and save it with .svg extension.

<svg viewBox="0 0 800 600" xmlns="http://www.w3.org/2000/svg">
  <rect width="800" height="600" fill="#f8f9fa" />
  
  <style>
    .label { font-family: sans-serif; font-size: 12px; font-weight: bold; fill: #333; }
    .error-mark { fill: #e74c3c; stroke: #c0392b; stroke-width: 2; fill-opacity: 0.6; }
    .base-geo { fill: #3498db; stroke: #2980b9; stroke-width: 2; fill-opacity: 0.4; }
    .point { fill: #2c3e50; }
    .highlight { stroke: #e67e22; stroke-width: 3; stroke-dasharray: 4; }
  </style>

  <g transform="translate(50, 50)">
    <path d="M 0,0 L 100,0 L 0,80 L 100,80 Z" class="error-mark" />
    <text x="0" y="110" class="label">Self Intersection</text>
  </g>

  <g transform="translate(200, 50)">
    <path d="M 0,80 L 50,20 L 100,80" fill="none" stroke="#2980b9" stroke-width="2" />
    <circle cx="50" cy="20" r="4" class="point" />
    <circle cx="52" cy="22" r="4" fill="red" opacity="0.7" />
    <text x="0" y="110" class="label">Duplicate Nodes</text>
  </g>

  <g transform="translate(350, 50)">
    <path d="M 0,0 H 100 V 80 H 0 Z M 30,30 V 50 H 70 V 30 Z" class="base-geo" fill-rule="evenodd" />
    <text x="0" y="110" class="label">Hole (Undesired)</text>
  </g>

  <g transform="translate(500, 50)">
    <path d="M 0,80 L 45,80 L 48,78 L 100,80" fill="none" stroke="#2980b9" stroke-width="2" />
    <circle cx="46.5" cy="79" r="8" fill="none" stroke="red" />
    <text x="0" y="110" class="label">Short Segment</text>
  </g>

  <g transform="translate(650, 50)">
    <path d="M 0,80 L 100,75 L 0,70" fill="none" stroke="red" stroke-width="2" />
    <text x="0" y="110" class="label">Minimum Angle</text>
  </g>

  <g transform="translate(50, 200)">
    <rect x="40" y="40" width="10" height="10" class="error-mark" />
    <text x="0" y="110" class="label">Minimum Area</text>
  </g>

  <g transform="translate(200, 200)">
    <path d="M 0,40 Q 50,35 100,40 Q 50,42 0,40" class="error-mark" />
    <text x="0" y="110" class="label">Sliver Polygon</text>
  </g>

  <g transform="translate(350, 200)">
    <rect x="10" y="10" width="80" height="60" class="base-geo" />
    <rect x="15" y="15" width="80" height="60" class="error-mark" opacity="0.4" />
    <text x="0" y="110" class="label">Duplicate Features</text>
  </g>

  <g transform="translate(500, 200)">
    <rect x="0" y="0" width="100" height="80" class="base-geo" />
    <circle cx="50" cy="40" r="20" class="error-mark" />
    <text x="0" y="110" class="label">Feature in Feature</text>
  </g>

  <g transform="translate(200, 350)">
    <rect x="0" y="0" width="80" height="80" class="base-geo" />
    <rect x="60" y="20" width="80" height="80" fill="#e74c3c" fill-opacity="0.5" stroke="#c0392b" />
    <text x="30" y="120" class="label">Overlap</text>
  </g>

  <g transform="translate(450, 350)">
    <path d="M 0,0 L 70,0 L 65,80 L 0,80 Z" class="base-geo" />
    <path d="M 80,0 L 150,0 L 150,80 L 85,80 Z" class="base-geo" />
    <text x="45" y="120" class="label">Gap (Sliver)</text>
  </g>
</svg>


Self Intersection:- A polygon boundary crosses over itself. Breaks validity in OGC standards; creates "figure-eight" shapes.



Sliver Polygons:- Long, thin polygons often created by overlapping boundaries. Inflates feature count and messes up area calculations. This error come from very small polygon (with small area) with a large perimeter



Gaps & Overlaps:- Polygons that should be adjacent have space between them or sit on top of each other. Leads to "double counting" or "missing data" in spatial joins.



Minimum Angle:- Vertices are too close, creating a sharp "spike." Causes rendering artifacts and issues with offset/buffer tools.



Duplicate Nodes:- Multiple vertices at the same coordinates. Increases file size and slows down processing without adding detail.



Thank you for reading.

Monday, February 2, 2026

List of USGS EROS data portals

 The USGS Earth Resources Observation and Science (EROS) Center provides access to extensive satellite, aerial, and land surface data through several key portals. The primary platforms for searching and downloading imagery are EarthExplorer and GloVis. 

As of the year 2026, the USGS Earth Resources Observation and Science (EROS) Center continues to provide specialized portals for accessing satellite imagery and geospatial datasets. Accessing most of these services requires an account via the EROS Registration System (ERS).


Portal website links are provided below;-

1) EarthExplorer (EE) - https://earthexplorer.usgs.gov/
2) Global Visualization Viewer (GloVis) - https://glovis.usgs.gov/
3) LP DAAC (Land Data) - https://lpdaac.usgs.gov/
4) EROS Science Processing (ESPA) - https://espa.cr.usgs.gov/
5) Commercial Cloud Data (AWS) - https://registry.opendata.aws/
6) Machine-to-Machine (M2M) API - https://m2m.cr.usgs.gov/
7) Bulk Download Application (BDWA) - https://ebulk.cr.usgs.gov/
8) HDDS Explorer (Hazards/Disasters) - https://hdds.usgs.gov/
9) EarthNow! Landsat Viewer - https://earthnow.usgs.gov/
10) LANDFIRE Map Viewer - https://www.landfire.gov/viewer/
11) Multi-Resolution Land Characteristics (NLCD) - https://www.mrlc.gov/viewer/
12) Coastal Elevation Database (CoNED) - https://www.topotools.cr.usgs.gov
13) Monitoring Trends in Burn Severity (MTBS) - https://www.mtbs.gov/
14) AppEEARS (Data Subsetting) - https://appeears.earthdatacloud.nasa.gov/
15) IntELiMon Viewer (Interagency Ecosystem LiDAR Monitoring) - https://dmsdata.cr.usgs.gov/lidar-monitoring/viewer/
16) LRESA (Landsat Reprocessing Events Search Application) - https://lresa.cr.usgs.gov/
17) Spectral Characteristics Viewer - https://landsat.usgs.gov/spectral-characteristics-viewer
18) Fire Danger Viewer - https://fire-danger-viewer.cr.usgs.gov/
19) EROS Registration System (ERS) - https://ers.cr.usgs.gov/


That is it!

Tuesday, January 27, 2026

Bluepark upload custom HTML/CSS/JS webpage

 Bluepark is a powerful UK based ecommerce platform. Bluepark is a powerful ecommerce software, hosted on fast and reliable UK servers, provides scalable shopping cart solutions for small to large businesses. I helps you create your own online shop and sell online with the UK's leading all-in-one ecommerce platform, backed by our 5-star-rated Support Team.

In Bluepark, you do not "upload" a standalone HTML file in the traditional sense of FTP; instead, you add or edit HTML code through the admin panel to customize existing themes or content blocks.

If your HTML refers to external assets like custom scripts or specialized images:

  • Use the File Manager by navigating to Admin > Files.
  • Upload your assets here to host them on Bluepark's servers.
  • Note that for interactive elements, Bluepark variables and classes are often required to ensure functionality within their CMS environment. 


That is it!

Wednesday, January 14, 2026

How to Trust a JupyterLab Notebook

 If you have ever encountered the "JupyterLab is not trusted" message, that is a security warning feature designed to prevent malicious code like JavaScript or HTML in a notebook cell from automatically executing.



However, in some cases it is not a malicious code but JupyterLab erroniously classified it as one. In this post, I will guide you on how to fix it. That is how to trust the code in the JupyterLab Notebook.

You can mark a notebook as trusted using the GUI (the browser user interface) or the command line. I will focus on using the user interface for this guide.

Using the user interface (JupyterLab) to Trust a Notebook

Step 1: Open the notebook in JupyterLab

Step 2: Open the Command Palette by going to View >> Activate Command Palette



Step 3: Type 'trust' and select the "Trust Notebook" command as seen below.


That is it. Now re-start the JupyterLab server and re-run all the code cells.

Thank you for following.