<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>JPEG rasters can need up to three additional files, including the
      .xml and .aux.xml files. These files, among other things, hold the
      specification of the CRS / projection to be used when displaying
      them. The .aux.xml file is used for Persistent Auxiliary Metadata,
      which may include a geotransform that is used instead of the world
      file (subject to GDAL configuration, assuming Qgis uses the GDAL
      library functions).</p>
    <p>More is certainly required than just a world file with each
      raster.</p>
    <div class="moz-cite-prefix">On 27/08/2025 00:10, Roland Spielhofer
      via QGIS-User wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:trinity-3dd4e1fd-4b2c-404a-b7cc-5baa86fbc349-1756210228355@trinity-msg-rest-gmx-gmx-live-78b97b4557-l27pb">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div style="font-family: 'verdana'; font-size: 12px; color: #000;">Hi
        Leopold,</div>
      <div style="font-family: 'verdana'; font-size: 12px; color: #000;">as
        others mentioned, the sample image look like to be taken facing
        downward - like an aerial image take by a drone or veritcally
        from a railwagon - is this right?</div>
      <div style="font-family: 'verdana'; font-size: 12px; color: #000;"> </div>
      <div style="font-family: 'verdana'; font-size: 12px; color: #000;">If
        you just want show the images on a map and have sort of a
        high-resolution aerial image of the tracks, you would just need
        to create a world file for each JPG.</div>
      <div style="font-family: 'verdana'; font-size: 12px; color: #000;"><a
          href="https://en.wikipedia.org/wiki/World_file"
          target="_blank" rel="noopener noreferrer"
          moz-do-not-send="true" class="moz-txt-link-freetext">https://en.wikipedia.org/wiki/World_file</a></div>
      <div style="font-family: 'verdana'; font-size: 12px; color: #000;">You
        say you have a location and orientation for all images - this
        should be sufficient to create the world files.</div>
      <div style="font-family: 'verdana'; font-size: 12px; color: #000;"> </div>
      <div style="font-family: 'verdana'; font-size: 12px; color: #000;">You
        would need the coordinate of the upper left corner of the image
        - probably the coordinate you have in your XML is the position
        of the camera that has taken the image. This would be the center
        of the image (assuming the camera looks vertical to the ground)
        Together with the heading (orientation) it would be easy to
        calculate the position of the upper left corner, given that the
        distance from camera to ground is known/fixed. If the camera was
        mounted on a railcar the distance is fixed and should be
        measured. If the distance between camera and ground varies with
        each image, it gets complicated because ... see below.</div>
      <div style="font-family: 'verdana'; font-size: 12px; color: #000;">If
        location accuracy is not that important you could also take the
        location from the XML file directly or apply a fixed offset.</div>
      <div style="font-family: 'verdana'; font-size: 12px; color: #000;"> </div>
      <div style="font-family: 'verdana'; font-size: 12px; color: #000;">You
        then need the size of a pixel of the image on the ground (<a
          href="https://en.wikipedia.org/wiki/Ground_sample_distance"
          target="_blank" rel="noopener noreferrer"
          moz-do-not-send="true">https://en.wikipedia.org/wiki/Ground_sample_distance)
        </a>- you could measure the distance between the rails in pixels
        on the image - the track gauge should be known or at least easy
        to find out (and assume that the pixel are square). Then you get
        the GSD and you can calculated the left upper corner location
        and start filling the world file with the other parameters.</div>
      <div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span
          style="background-color: #ffffff;">The rotation parmeters can
          then also be calculated from the orientation you have in the
          XML file.</span></div>
      <div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span
          style="background-color: #ffffff;"> </span></div>
      <div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span
          style="background-color: #ffffff;">I would advise to use a
          rectangular (projected) coordinate system as all calculations
          are much easier in [m] than in [degrees].</span></div>
      <div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span
          style="background-color: #ffffff;"> </span></div>
      <div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span
          style="background-color: #ffffff;">In any case the images will
          not match perfectly while they are distorted (which they are
          if they come directly from a camera). To avoid that, an
          elaborate process using a terrain model etc. would be
          necessaery - essentially the process to produce orthophotos.</span></div>
      <div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span
          style="background-color: #ffffff;"> </span></div>
      <div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span
          style="background-color: #ffffff;">To handle the large amount
          of images there are is something like virtual rasters, IIRC.</span></div>
      <div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span
          style="background-color: #ffffff;"> </span></div>
      <div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span
          style="background-color: #ffffff;">hth</span></div>
      <div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span
          style="background-color: #ffffff;">Roland</span></div>
      <div style="font-family: 'verdana'; font-size: 12px; color: #000;"><span
          style="background-color: #ffffff;"> </span></div>
      <div id="sub-body-container"
style="margin: 10px 5px 5px 10px; padding: 10px 0px 10px 10px; border-left: 2px solid rgb(195, 217, 229);">
        <div style="margin: 0px 0px 10px;">
          <div><strong>Gesendet: </strong>Mittwoch, 20. August 2025 um
            16:20</div>
          <div><strong>Von: </strong>"Léopold Stoessel via QGIS-User"
            <a class="moz-txt-link-rfc2396E" href="mailto:qgis-user@lists.osgeo.org"><qgis-user@lists.osgeo.org></a></div>
          <div><strong>An: </strong><a class="moz-txt-link-rfc2396E" href="mailto:qgis-user@lists.osgeo.org">"qgis-user@lists.osgeo.org"</a>
            <a class="moz-txt-link-rfc2396E" href="mailto:qgis-user@lists.osgeo.org"><qgis-user@lists.osgeo.org></a></div>
          <div><strong>Betreff: </strong>[Qgis-user] Placing group of
            image at once</div>
        </div>
        <div class="WordSection1">
          <p class="MsoNormal">Hello,</p>
          <p class="MsoNormal"> </p>
          <p class="MsoNormal">Our team is currently working on a
            project to reconstruct the railways of Canada using QGIS. To
            do this, we collect data directly on the rails, taking a
            photo every 2 meters. Each image (JPG) is accompanied by an
            XML file containing its GPS coordinates (EPSG:4326) and
            orientation.</p>
          <p class="MsoNormal"> </p>
          <p class="MsoNormal">Our goal is to display all the images on
            a QGIS map at their correct geographic location and with the
            proper orientation. (Example image: <em>Try.jpg</em>)</p>
          <p class="MsoNormal"> </p>
          <p class="MsoNormal">As far as I understand, a JPG file needs
            either an associated PGW world file or must be converted
            into a georeferenced TIFF in order to be correctly placed on
            the map.</p>
          <p class="MsoNormal">Here are the challenges we're facing:</p>
          <ul style="margin-top: 0.0cm;" type="disc">
            <li class="MsoNormal"><strong>PGW method</strong>: I tried
              placing a PNG file with a PGW of the same name in the same
              directory, but QGIS seems to ignore the PGW file and
              creates HTML document with other coordinates instead.</li>
            <li class="MsoNormal"><strong>GeoTIFF method</strong>: With
              over 500,000 images, manually georeferencing each one is
              not feasible.</li>
          </ul>
          <p class="MsoNormal" style="margin-left: 36.0pt;"> </p>
          <p class="MsoNormal">So I would like to ask for your advice:</p>
          <ul style="margin-top: 0.0cm;" type="disc">
            <li class="MsoNormal">Are we on the right track with our
              approach?</li>
            <li class="MsoNormal">Which method would you recommend in
              our case?</li>
            <li class="MsoNormal">Do you know of any way to automate the
              image placement and orientation based on our XML data?</li>
            <li class="MsoNormal">Would it be possible to handle this
              through the Python console or using PyQGIS?</li>
          </ul>
          <p class="MsoNormal">Any guidance or suggestions would be
            greatly appreciated.</p>
          <p class="MsoNormal"> </p>
          <p class="MsoNormal">Thanks in advance for your time and help!</p>
          <p class="MsoNormal"> </p>
          <p class="MsoNormal"><strong><span
style="font-size: 10.0pt; font-family: Gisha , sans-serif;"><img
                  id="Picture_x0020_1"
                  style="width: 6.0in; height: 0.0625in;"
                  src="cid:part1.xTXuRufh.NaSUx3zb@gmail.com"
                  width="576" height="6"
                  data-cid="image001.jpg@01DC11B7.F332C3B0" class=""> </span></strong></p>
          <p class="MsoNormal"><strong><span
style="font-size: 4.0pt; font-family: Gisha , sans-serif;"> </span></strong></p>
          <table class="MsoNormalTable"
            style="width: 573.75pt; border-collapse: collapse;"
            border="0" width="765" cellspacing="0" cellpadding="0">
            <tbody>
              <tr style="height: 131.85pt;">
                <td
style="width: 143.25pt; border: none; border-right: solid rgb(51,102,102) 1.0pt; padding: 0.0cm 5.4pt 0.0cm 5.4pt; height: 131.85pt;"
                  valign="top" width="191">
                  <p class="MsoNormal"><span
style="font-size: 6.0pt; font-family: Calibri , sans-serif;"> </span></p>
                  <p class="MsoNormal" style="text-align: center;"
                    align="center"><a title="https://www.cefrail.ca/"
                      href="https://www.cefrail.ca/" target="_blank"
                      rel="noopener noreferrer" moz-do-not-send="true"><strong><span
style="font-size: 10.0pt; font-family: 'Segoe UI Light' , sans-serif; color: blue; text-decoration: none;"><img
                            id="Image_x0020_2"
                            style="width: 1.9097in; height: 0.9513in;"
                            src="cid:part2.0GlzUbOa.dv0d6Vno@gmail.com"
                            width="183" height="91" border="0"
                            data-cid="image002.png@01DC11B7.F332C3B0"
                            class=""></span></strong></a><a
                      title="https://www.facebook.com/cefrail"
                      href="https://www.facebook.com/cefrail"
                      target="_blank" rel="noopener noreferrer"
                      moz-do-not-send="true"><strong><span
style="font-size: 10.0pt; font-family: 'Segoe UI Light' , sans-serif; color: blue; text-decoration: none;"><img
                            id="Image_x0020_3"
                            style="width: 0.2777in; height: 0.2777in;"
                            src="cid:part3.y7rUtsTv.1H7Weg0H@gmail.com"
                            width="27" height="27" border="0"
                            data-cid="image003.png@01DC11B7.F332C3B0"
                            class=""></span></strong></a><strong><span
style="font-size: 10.0pt; font-family: 'Segoe UI Light' , sans-serif;"> </span></strong><a
title="https://www.linkedin.com/authwall?trk=bf&trkInfo=AQEjKKnHH0hB2QAAAYzqp8YogvhljVV4rfWfPZk4nt7Fxp7t-jgeC03T84SUqgFnFtN8YLHip3me96M7mf832Uiq6YnFyyw3y1AU8c10Tw4twclYPuLl6KexU9lj_p4Hp_UeifI=&original_referer=&sessionRedirect=https%3A%2F%2Fwww.linkedin.com%2Fco"
href="https://www.linkedin.com/authwall?trk=bf&trkInfo=AQEjKKnHH0hB2QAAAYzqp8YogvhljVV4rfWfPZk4nt7Fxp7t-jgeC03T84SUqgFnFtN8YLHip3me96M7mf832Uiq6YnFyyw3y1AU8c10Tw4twclYPuLl6KexU9lj_p4Hp_UeifI=&original_referer=&sessionRedirect=https%3A%2F%2Fwww.linkedin.com%2Fcompany%2Fcefrail"
                      target="_blank" rel="noopener noreferrer"
                      moz-do-not-send="true"><span
style="font-size: 11.0pt; font-family: Calibri , sans-serif; color: blue; text-decoration: none;"><img
                          id="Image_x0020_4"
                          style="width: 0.2708in; height: 0.2708in;"
                          src="cid:part4.D8t65yMb.GV05XcQQ@gmail.com"
                          width="26" height="26" border="0"
                          data-cid="image004.png@01DC11B7.F332C3B0"
                          class=""></span></a></p>
                </td>
                <td
style="width: 250.6pt; padding: 0.0cm 5.4pt 0.0cm 5.4pt; height: 131.85pt;"
                  valign="top" width="334">
                  <p class="MsoNormal"><strong><span
style="font-family: 'Segoe UI Light' , sans-serif;">Léopold Stoessel</span></strong></p>
                  <p class="MsoNormal"><span
style="font-size: 10.0pt; font-family: 'Segoe UI Light' , sans-serif;">Stagiaire
                      - Génie ferroviaire</span></p>
                  <p class="MsoNormal"><span
style="font-size: 10.0pt; font-family: 'Segoe UI Light' , sans-serif;">1 866 544-RAIL</span></p>
                  <p class="MsoNormal"><u><span
style="font-size: 11.0pt; font-family: Calibri , sans-serif; color: blue;"><a
                          href="mailto:leopold.stoessel@cegepsi.ca"
                          target="_blank" rel="noopener noreferrer"
                          moz-do-not-send="true"><span
                            style="color: #467886;">leopold.stoessel</span><span
style="font-size: 10.0pt; font-family: 'Segoe UI Light' , sans-serif; color: #467886;">@cegepsi.ca</span></a></span></u><span
style="font-size: 10.0pt; font-family: 'Segoe UI Light' , sans-serif; color: #0e3a4f;"> </span></p>
                  <p class="MsoNormal"><u><span
style="font-size: 10.0pt; font-family: 'Segoe UI Light' , sans-serif; color: #0e3a4f;"><a
                          href="http://www.cefrail.ca/" target="_blank"
                          rel="noopener noreferrer"
                          moz-do-not-send="true"><span
                            style="color: blue;">www.cefrail.ca</span></a> </span></u></p>
                  <p class="MsoNormal"><em><span
style="font-size: 10.0pt; font-family: 'Segoe UI Light' , sans-serif;">RAIL
                        est un centre intégré au Cégep de Sept-Îles</span></em><span
style="font-size: 10.0pt; font-family: 'Segoe UI Light' , sans-serif; color: #0e3a4f;"> </span></p>
                </td>
                <td
style="width: 182.6pt; padding: 0.0cm 5.4pt 0.0cm 5.4pt; height: 131.85pt;"
                  valign="top" width="243"> </td>
              </tr>
            </tbody>
          </table>
          <p class="MsoNormal"> </p>
          <p class="MsoNormal"> </p>
        </div>
        _______________________________________________ QGIS-User
        mailing list <a class="moz-txt-link-abbreviated" href="mailto:QGIS-User@lists.osgeo.org">QGIS-User@lists.osgeo.org</a> List info: <a
          href="https://lists.osgeo.org/mailman/listinfo/qgis-user"
          target="_blank" rel="noopener noreferrer"
          moz-do-not-send="true" class="moz-txt-link-freetext">https://lists.osgeo.org/mailman/listinfo/qgis-user</a>
        Unsubscribe: <a
          href="https://lists.osgeo.org/mailman/listinfo/qgis-user"
          target="_blank" rel="noopener noreferrer"
          moz-do-not-send="true" class="moz-txt-link-freetext">https://lists.osgeo.org/mailman/listinfo/qgis-user</a></div>
      <br>
      <fieldset class="moz-mime-attachment-header"></fieldset>
      <pre wrap="" class="moz-quote-pre">_______________________________________________
QGIS-User mailing list
<a class="moz-txt-link-abbreviated" href="mailto:QGIS-User@lists.osgeo.org">QGIS-User@lists.osgeo.org</a>
List info: <a class="moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/qgis-user">https://lists.osgeo.org/mailman/listinfo/qgis-user</a>
Unsubscribe: <a class="moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/qgis-user">https://lists.osgeo.org/mailman/listinfo/qgis-user</a>
</pre>
    </blockquote>
  </body>
</html>