Skip to content
GEOSAT
← Back to blog
Open GIS
Open GIS2025-01-25GEOSAT9 min read

QGIS for ArcGIS users: your first reproducible project

Prepare data, coordinates, styling and a verifiable output before moving an ArcGIS workflow to QGIS.

Editorial review: 2026-09-23

QGISOpen GIS

A desktop migration starts by reproducing a small task. In this exercise you create two synthetic points, check their coordinates and save a project someone else can open. No cadastral records or credentials are needed. The interface reference is QGIS 3.44; consult the official download page to choose a maintained release and record the version you actually use.

Prepare the project

Create an empty folder with data and outputs subfolders. Save the following UTF-8 file as data/points.geojson. GeoJSON coordinates use longitude, latitude order. These fictional points do not identify real assets.

Code example
{"type":"FeatureCollection","features":[{"type":"Feature","id":1,"properties":{"name":"Point A","status":"active"},"geometry":{"type":"Point","coordinates":[-75.57,6.24]}},{"type":"Feature","id":2,"properties":{"name":"Point B","status":"review"},"geometry":{"type":"Point","coordinates":[-75.56,6.25]}}]}

Open a new project and drag the file onto the canvas. The attribute table should contain two records, and zooming to the layer should locate them near Medellín. If they appear on another continent, check axis order before assigning a different coordinate system. Assigning a CRS describes existing numbers; reprojection calculates new numbers.

Create a working copy

Choose Export → Save Features As on the layer, select GeoPackage, and create data/work.gpkg, layer points. Keep EPSG:4326 for this visualization exercise. For distances or areas, use a projection suitable for your territory and document its units; do not interpret degrees as metres.

Remove the GeoJSON layer from the project and work with the GeoPackage copy. Under Properties → Symbology, choose Categorized using status. Give active and review different colors and enable labels using name. The expected output is two distinguishable symbols and readable names, not an automatic replica of an Esri style file.

Save and check

Save first-project.qgz in the main folder using relative paths. Close QGIS, reopen the file and check that no sources are missing. Create a print layout with a map, legend, scale and a note identifying the data as synthetic. Export a PDF and inspect it at the intended scale.

For an ArcGIS user, a .qgz project plays a comparable organizational role in a desktop workflow, but it is not a conversion of an .aprx file. Connections, expressions, models and layouts require individual review. A GeoPackage transports tables and geometry, but does not by itself replace a multiuser server.

Troubleshooting and acceptance

An empty map may result from extent, filtering or CRS configuration rather than installation. A missing label may be suppressed by scale or collision rules. Repair a broken path by changing the data source rather than importing an uncontrolled duplicate. Before expanding the pilot, give someone else the complete folder and ask them to open it, edit an attribute and export the same layout. That exchange checks portability of one concrete workflow; it does not establish equivalence of the entire platform.

An ArcGIS-to-QGIS translation map

Use the following mapping during onboarding. It describes a similar task, not interchangeable file formats or identical implementations.

Existing habitQGIS starting pointWhat to verify
ArcGIS Pro project and mapQGZ project and layer treeRelative sources, styles, project CRS, stored credentials
Catalog connectionBrowser panel and Data Source ManagerSupported provider, authentication and permissions
Geoprocessing toolboxProcessing ToolboxAlgorithm provider, units, invalid geometry behavior
Definition queryLayer source filterSQL dialect and whether filtering runs at the source
Selection by attributeSelect by ExpressionNull behavior and QGIS expression syntax
Field calculationField CalculatorStored versus virtual field and data type
Domains and subtypesDatabase constraints and form configurationEnforcement by every writer, not only this form
Layout and map seriesPrint Layout and AtlasFonts, scales, clipping, page order and export
ModelBuilder or ArcPyProcessing model or PyQGISRewrite parameters and compare outputs

This mapping prevents a common training mistake: assuming a familiar-looking button preserves the old workflow's behavior. When a table has a coded status, the value saved in storage matters more than the label shown on screen. When a processing tool accepts a distance, its coordinate system and distance handling matter more than the tool's name.

A reproducible 90-minute desktop pilot

The duration below is a suggested workshop allocation, not a benchmark. Use a disposable directory and record operating system, QGIS, GDAL and PROJ versions from the application information. Keep the first exercise independent of plugins. A plugin may later solve a real problem, but it adds another variable while establishing your baseline.

  1. First 15 minutes: inspect and import. Open the two synthetic points above. Read their field names and types. Select Point A and identify its coordinates. Confirm that the source CRS is 4326 and count exactly two features. Save the GeoPackage copy.
  2. Next 15 minutes: edit and validate. Add a text field named review_note. Change only Point B's note to Needs desk review; save edits, close the layer and reopen it. Verify that a committed change persists and an unsaved change can be discarded deliberately.
  3. Next 20 minutes: select and summarize. Select the record with "status" = 'review'. The selection should contain one feature. Export the selection to a separate layer called review_queue. Disable any layer filter first when checking the source count. Selection, source filtering and physical deletion have different consequences.
  4. Next 20 minutes: communicate. Create a layout titled Synthetic inspection pilot. Include both status classes in the legend, a date, a data-source note and a map scale. Check whether the label remains readable in the exported PDF, not just on the desktop canvas.
  5. Final 20 minutes: hand over. Copy the directory to a different path or machine. Reopen the project without repairing paths. Ask a second analyst to find Point B, read the review note and reproduce the export using the written instructions.

For a larger shared exercise, use the downloadable Open GIS laboratory. Its synthetic data is suitable for demonstrating a process without disclosing operational data. Follow that lab's own filenames and expected counts; the two-point exercise on this page is an independent minimal example.

Inspect coordinate systems before measuring

Four settings can be confused: the CRS stored with the data, a layer's assigned CRS, the project's display CRS and the operation used to transform coordinates. Changing the display CRS can make different layers look aligned while leaving the source values unchanged. Assigning a CRS to the wrong numbers can instead make the data appear plausible in one view and wrong in another.

For this exercise, inspect Point A as longitude −75.57 and latitude 6.24. Do not choose a projected CRS simply to make the coordinates “look like metres.” For an institutional dataset, request the source definition, units, origin, datum, epoch if relevant, and required output system. Check a known reference coordinate independently. A project in Colombia, Mexico or Chile does not inherit a single correct CRS from the country name alone.

If the workflow measures area, explicitly record whether the expected result is planimetric or ellipsoidal. Compare a representative geometry using the organization's accepted procedure and tolerance. A numerical difference may arise from a different method rather than corrupted geometry. Preserve both source and derived values until the cause is understood.

Add a form without pretending it is a database rule

On the GeoPackage layer, configure a value map for status with active and review. Give the field a clear alias and make name required in the QGIS form. Try saving an empty name and a valid value. Then inspect the table using a separate client, if your pilot includes one. Record which constraints belong to the storage format and which belong only to the project interface.

This distinction determines the architecture when several systems write to the same data. A well-designed QGIS form helps analysts; it does not protect a separate API that bypasses that form. Move shared rules into a database constraint, controlled service or other common write path when appropriate. The PostGIS permissions guide develops that boundary.

Diagnose failures by symptom

SymptomFirst checkCorrection to test
Project opens with unavailable layersAbsolute paths or unshared network drivesRepoint once, save relative paths, repeat handover
One analyst sees fewer featuresLayer filter, selection-only table view, extent filterShow all records and compare the source count
Labels disappear in exportFont availability, scale rules, collisionsInstall the agreed font and inspect the target PDF size
Buffer distance seems enormousDegrees used as planar unitsReproject a copy to an appropriate metric CRS
Edits disappear on reopenLayer edit buffer not savedCommit deliberately and verify from a reopened source
Project works only for its authorPlugin, authentication or local resource dependencyRepeat with a clean profile and documented dependencies

Do not respond to every failure by reimporting the layer. Reimports can hide the cause, duplicate records and break references. Preserve the failing example long enough to understand which assumption changed.

Questions teams ask before replacing ArcGIS Pro

Can QGIS open an ArcGIS Pro project directly?

An APRX project is not a QGZ project. Treat layers, styles, layouts, connections and automation as separate migration items. Data that opens correctly is a useful start, but it does not establish that the project's complete behavior has moved.

Is GeoPackage enough for a department?

It is useful for portable exchange and bounded work packages. Evaluate PostGIS when several people need concurrent access, centrally enforced permissions, service integration or managed recovery. A synchronized folder containing one editable file is not a substitute for a multiuser database design.

How do we know the pilot passed?

Require a second analyst to reproduce the saved map and edit using the same inputs. Record exact counts, visible categories, accepted attributes, coordinate checks and the exported deliverable. Promote this workflow only after those checks pass. Evaluate the next workflow separately, especially if it introduces plugins, server authentication or specialized analytical tools.

Additional reference: QGIS project configuration and user profiles.

Sources and documentation

Next step

Continue in the Open GIS collection. For a specific project, use the total-cost calculator and request an assessment.

Related articles