Skip to content

Releases: geo-raypan/dji-geotagger

v3.1.1

Choose a tag to compare

@geo-raypan geo-raypan released this 12 Aug 19:25
A flight nobody had ticked yet was checked against the ticked folders'
observations alone, so it reported every exposure uncovered and was drawn
as ruined. It is judged against everything on disk now, and exposures a
neighbouring folder does observe no longer count towards that verdict.

Two things the documentation did not say, and should have. A DJI base
solved by a third-party PPP service carries an uncorrected antenna
offset: no calibration is published for the D-RTK 3, so neither CSRS-PPP
nor RTKLIB applies one, it does not cancel between base and rover, and it
is not in the reported sigma. And UTCAtExposure holds GPS time, not UTC -
it is DJI's own XMP field, passed through under DJI's name.

The new docs/output.md gives the provenance of every output column. The
help tooltips read as sections rather than a wall of text, and About no
longer prints file paths.

v3.1.0

Choose a tag to compare

@geo-raypan geo-raypan released this 04 Aug 01:16
Exposures at a DJI folder boundary are no longer lost. The trajectories
are merged into the single recording they came from before any exposure
is placed, and a neighbouring folder outside the run can lend its
observations.

L2 flights can be geotagged: the rover log is read from *.RTK as well as
*_PPKRAW.bin.

Changes results. Photos are paired with MRK records by DJI's own exposure
number rather than by sorted position. A folder that does not start at
0001 was previously paired with the wrong records throughout - every L2
folder, and any folder left behind by an aborted flight. Reprocess L2
work done with an earlier version.

Also: the base antenna height now reaches convbin, k is entered as a
number, and the flights step gained a review panel.

v3.0.3

Choose a tag to compare

@geo-raypan geo-raypan released this 02 Aug 07:09
3.0.3

v2.1.1

Choose a tag to compare

@geo-raypan geo-raypan released this 02 Aug 04:59
Fix: the antenna height never reached the base station solution.

convbin's -hd option takes h/e/n and was being given n/e/h, and RTCM
message 1006 overrides it in any case - a DJI DRTK-3 broadcasts 0.0000
in that field. The RINEX header therefore always read a zero delta and
the solved position described the antenna reference point rather than
the ground mark it was set up over.

The delta is now written into the header after conversion and read back
into RTKLIB as ant2-antdelu. Both ends are needed: correcting only the
header would have placed the antenna at the mark and dropped every
camera position by the antenna height.

Camera positions from earlier versions are unaffected - the old chain
was self-consistent. What was wrong is the recorded base coordinate.

v2.1.0

Choose a tag to compare

@geo-raypan geo-raypan released this 31 Jul 22:48

Automated CSRS-PPP submission, coordinate transformation, and a set of fixes
for errors that were previously silent.

Added

  • resolve_base_position()"online" submits to CSRS-PPP and fetches
    the .sum back, "sum" reads an existing one, "manual" takes known
    coordinates. No CSRS account is needed; the service checks the address
    format only.
  • transform_coordinates() — datum transformation and projection via
    pyproj, with uncertainties rotated into the target frame. Refuses PROJ's
    three silent failures — ballpark fallbacks, datum ensembles, and a missing
    epoch — each with an explicit override.
  • make_utm_crs() and rebase_projected_crs() for datums EPSG has no
    versioned projected code for, such as ITRF2020 UTM and Alberta 3TM.
  • Base/rover time overlap check before RTKLIB runs.
  • Per-flight error isolation; failures listed in attrs["failed_flights"].
  • Progress reporting with cooperative cancellation, and configure_logging().

Fixed

  • .sum column layout is read from the header. CSRS-PPP inserts a SIG_TOT
    column when it propagates the epoch, which shifted every correlation one
    place right and was read as a sigma without any error.
  • Indefinite RTKLIB covariance matrices are detected and repaired, so they can
    be inverted for bundle-adjustment weighting.
  • Local working directories are no longer packaged into the distribution.

Removed

  • scipy, which was declared but never imported.

Requires Python 3.11 · pip install dji-geotagger==2.1.0