Giter VIP home page Giter VIP logo

photoscenary's Introduction

Photoscenary

Programs to generate and manipulate photoscenaries for FGFS.

The program is written entirely in JULIA and therefore requires JULIA to be installed on your system. It is a command line program and currently has no GUI.

A list of changes / history can be found in Versions.md.

Quick guide

Elaborate instructions in a complete manual can be found at the FlightGear Wiki.

The process of getting photoscenery is simple:

  1. Install the toolchain
  2. Use the tool to download photoscenery tiles in the correct format
  3. Tell FlightGear to use those downloaded tiles

Installation

If you use Linux, chances are good your distribution already provides packages. Otherwise, install manually:

Usage

  • julia photoscenary.jl -h (or --help) will print version and usage information.
  • julia photoscenary.jl --version will print version and perform checks on needed programs.

Basic call

Running julia photoscenary.jl without arguments will run the program with the last commands.
They are read from the args.txt file in the base directory.

Simple example using coordinates

The program, for basic example, you can run it with this command:

julia -t 4 photoscenary.jl -p /home/user/photoscenery/Orthophotos --lat 45.66 --lon 9.7 -r 15 -s 3

where:

-p      the path of photoscenery
--lat   the latitude of the central location of the area
--lon   the longitude of the central location of the area
-r      the radius of the area to be covered with the photoscenary
-s      Max size of image in pixels 0->512 1->1024 2->2048 3->4096 4->8192 5->16384 6->32768

Simple example using Airport ID

You may also download around a airport using its ICAO code (-i <ICAO>): julia -t 4 photoscenary.jl -p /home/user/photoscenery/Orthophotos -i LIMJ -r 15 -s 3

Use SkyVector route

You can use a GPX route made by skyvector to download scenery along that path (--route <file.gpx>): julia -t 4 photoscenary.jl -p /home/user/photoscenery/Orthophotos --route https://wiki.flightgear.org/mySkyVectorRoute.gpx -r 15 -s 3

Using the tiles in FlightGear

To make FlightGear load the downloaded tiles, you need to tell it to:

  • In the FGFS launcher, add the photoscenery folder as you would with "normal" addon scenery. Just add the folder that you specified with the -p option as Addon-scenery (hint: it contains a sufolder named Orthophotos).
  • When FlightGear started, activate the option: Menu > View > Rendering Options > Satellite Photoscenery

photoscenary's People

Contributors

abassign avatar hbeni avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

dark-eye hbeni

photoscenary's Issues

Error to convert the file in dds format

Two of us are getting getting this error, when making -s 5/6 scenery near LSZH.
It works when doing -s 4 or 2 or 1.
Julia v1.8.3 (Error is also with v1.8.5)
Ubuntu 20.04, ImageMagick 6.9.10-23

julia -t 1 photoscenary.jl -s 5 -p /mnt/d/Flightgear/photoscenery5 --over 1 -r 1 -i LSZH --debug 4
...
The image in 8.719,47.469,8.750,47.484 load in the matrix: x = 8 y = 7 Task: 63 th: 1 try: 1 time: 97.80downloadImage - The file /mnt/d/Flightgear/photoscenery5/Orthophotos/e000n40/e008n47/3088986.png is downloaded
convert-im6.q16: no images defined `/mnt/d/Flightgear/photoscenery5/Orthophotos/e000n40/e008n47/3088986.dds' @ error/convert.c/ConvertImageCommand/3258.
createDDSorPNGFile - Error to convert the /mnt/d/Flightgear/photoscenery5/Orthophotos/e000n40/e008n47/3088986.png file in dds format
Debug set program #3.2.2
Debug set program #3.2.4
Debug set program #3.2.5
Time:    124 elab:      0 (  Inf|  NaN) Tiles:    0 on    9 res    9 err    1 Th:  1 path: ../e000n40/e008n47/3088986.dds  Dist:   1.7 pix: 16384 MB/s: 0.00 MB dw:    0.0 (HTTP! -10)
Debug set program #3.2.1
createDDSorPNGFile - copyTilesByIndex foundIndex: nothing | foundPath: nothing | toPath: nothing | tileDatabase: Table with 0 rows, 2 columns:
1  2
──── | tileIndex: 3088994 | tp[12]: 16384
┌ Warning: downloadImage - HTTP image start to download url: http://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/export?bbox=8.5,47.5,8.53125,47.515625&bboxSR=4326&size=2048.0,1024.0&imageSR=4326&format=png24&f=image

Documentation enhancement

  • Move complete documentation over here.
    I think it would be good to copy the documentation found in the flightgear wiki also here.
    This way this tool here will be self-contained and versioned.
    The FGFS wiki then could easily link here, if you want to avoid duplication.
  • The Readme.md here is a good place to also mention that julia photoscenary.jl -h and julia photoscenary.jl --help gives version and usage information

Stacktrace when running the script

I get the following stacktrace when I run the script:

$ julia photoscenary.jl -t 30 -s 5 -i loww -r 5
┌ Warning: Deprecated syntax `"begin" inside indexing expression` at /storage/ortho/photoscenary/photoscenary.jl:161.
└ @ /storage/ortho/photoscenary/photoscenary.jl:161
ERROR: LoadError: ArgumentError: Package Downloads not found in current path:
- Run `import Pkg; Pkg.add("Downloads")` to install the Downloads package.

Stacktrace:
 [1] require(::Module, ::Symbol) at ./loading.jl:823
 [2] include at ./boot.jl:317 [inlined]
 [3] include_relative(::Module, ::String) at ./loading.jl:1044
 [4] include(::Module, ::String) at ./sysimg.jl:29
 [5] exec_options(::Base.JLOptions) at ./client.jl:266
 [6] _start() at ./client.jl:425
in expression starting at /storage/ortho/photoscenary/photoscenary.jl:55

All I did was installing julia via apt, cloning the repo and run it.

Names of folders

First of all thanks for this promising tool.

I am getting folders' names such as o-30n30 while I believe that FG expects w030n30.

Typo in repository name (edit: and code)

Should be photoscenery.

(Note I would generally stick to lower case for the first letter of the repository name, but that's a convention rather than a typo. :) )

Edit: I see this is throughout the code as well.

Julia throwing weird error

I have just installed Julia, then git cloned this repository, then run julia photoscenary.jl --help. Output is following:

fatal: error thrown and no exception handler available.
#<null>
jl_errorf at /home/user/.local/lib/x86_64-linux-gnu/libjulia.so.1 (unknown line)
jl_load_dynamic_library at /home/user/.local/lib/x86_64-linux-gnu/libjulia.so.1 (unknown line)
unknown function (ip: 0x7fd6aa7aca02)
jl_load_and_lookup at /home/user/.local/lib/x86_64-linux-gnu/libjulia.so.1 (unknown line)
jlplt_pcre2_compile_8_2341 at /home/user/.local/lib/x86_64-linux-gnu/julia/sys.so (unknown line)
compile at ./pcre.jl:120
compile at ./regex.jl:72
#occursin#363 at ./regex.jl:172 [inlined]
occursin at ./regex.jl:172 [inlined]
isdirpath at ./path.jl:117 [inlined]
normpath at ./path.jl:337
abspath at ./path.jl:383
abspath at ./path.jl:391
__init__ at ./sysinfo.jl:119
jfptr___init___14051 at /home/user/.local/lib/x86_64-linux-gnu/julia/sys.so (unknown line)
unknown function (ip: 0x7fd6aa8544d1)
unknown function (ip: 0x7fd6aa83f17b)
unknown function (ip: 0x55f4e19f559a)
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
unknown function (ip: 0x55f4e19f564d)

julia --version gives

julia version 1.4.1

@everywhere not defined

I don't know if it's something serious, but when running julia photoscenary.jl for the first time, julia downloads and installs dependencies and at the end of this operation I get an error message:

ERROR: LoadError: LoadError: UndefVarError: @everywhere not defined
in expression starting at /home/romek/Downloaded/Apps/FlightGear/Photoscenary/photoscenary.jl:167
in expression starting at /home/romek/Downloaded/Apps/FlightGear/Photoscenary/photoscenary.jl:167

But however, after second run of the command e.g.: julia -t 12 photoscenary.jl -r 10 -s 3 -i BIVI the photoscenery seems to be generated correctly.

I checked for julia versions 1.6.7 and 1.9.2, with the ~/.julia directory cleared, for Windows 10 and Linux Mint, and this error always occurs.

SkyVector route parsing not working

Today I tried to load the GPX export from SkyVector.
The route is: https://skyvector.com/?ll=49.82894740601564,7.846984875039195&chart=301&zoom=5&fpl=%20EDGX%204916N00839E%204920N00833E%204922N00824E%204930N00818E%204940N00801E%204947N00739E%204948N00728E%204944N00719E%204951N00655E%204951N00650E%204950N00648E%204951N00646E%20EDRT

Command: julia photoscenary.jl --route /data/EDRT.gpx -p /data/OrtoPhoto/test/ -s 4 --over 1 -r 10

The actiual Julia is 1.9.4 The current version is correct in order to obtain the best performances

Photoscenary.jl ver: 0.4.00 date: 20230523 System prerequisite test

The Photoscenary.jl program has started, it can be stopped with CTRL-C

Photoscenery generator by Julia compilator,
Program for uploading Orthophotos files

Version: ImageMagick 6.9.12-98 Q16 x86_64 18038 https://legacy.imagemagick.org
Copyright: (C) 1999 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC Modules OpenMP(4.5) 
Delegates (built-in): bzlib djvu fftw fontconfig freetype heic jbig jng jp2 jpeg lcms lqr ltdl lzma openexr pangocairo png raw tiff webp wmf x xml zlib

ImageMagic is operative!

Arguments (params) saved in the file: args.txt
  lat  =>  nothing
  latur  =>  0.0
  tile  =>  nothing
  lon  =>  nothing
  over  =>  1
  latll  =>  0.0
  path  =>  /data/OrtoPhoto/test/
  map  =>  1
  nosave  =>  false
  args  =>  nothing
  lonur  =>  0.0
  radius  =>  10.0
  sdwn  =>  0
  connect  =>  nothing
  proxy  =>  nothing
  png  =>  false
  attemps  =>  3
  debug  =>  0
  version  =>  false
  route  =>  /data/EDRT.gpx
  save  =>  nothing
  size  =>  4
  lonll  =>  0.0
  search  =>  nothing
  icao  =>  nothing
  sexagesimal  =>  false

Map server select id: 1 name: ESRI GIS: https://www.esri.com/en-us/about/about-esri/overview (Arcgis)

The program get localization is in ROUTE mode

Error: loadRoute in the route file: /data/EDRT.gpx

Error: processing will stop! The LAT or LON is invalid (exit code 405)

Blank white pictures when using USGS

Hey @abassign,

When using --map 2 (USGS), I get blank images. Here is the full command I am doing: julia -t $(nproc) photoscenary.jl -s 4 --over 1 -i KBOS -p /home/newo/.fgfs/Scenery/Ortho --map 2.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.