Giter Site home page Giter Site logo

twak / chordatlas Goto Github PK

View Code? Open in Web Editor NEW
105.0 105.0 27.0 40.76 MB

data driven urban procedural modeling

Home Page: http://www.twak.co.uk/2018/09/frankengan-guided-detail-synthesis-for.html

License: Apache License 2.0

Java 99.55% Python 0.27% Shell 0.03% Dockerfile 0.15%

chordatlas's People

Contributors

dependabot[bot] avatar leekkww avatar twak avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

chordatlas's Issues

about data

I can't download data. When I open the URL, it looks like this:

Forbidden

You don't have permission to access /projects/2017/bigsur/data/ on this server.

Apache/2.2.15 (Scientific Linux) Server at geometry.cs.ucl.ac.uk Port 80

Please provide a link to download the data.Thank you very much!

MiniTransform Bug?

I ran into an issue when uploading my own minimesh, but it seems to be a quick fix (if the fix is correct) so I figured I would write it down here.

In the MiniTransform code:

double edgeLength = Math.pow( volume / ( count / targetCount ), 0.3333 );

Should this line actually be:

double edgeLength = Math.pow( volume / ( (double)count / targetCount ), 0.3333 );

which casts count to a double before dividing? Otherwise if count < targetCount, we are dividing by 0 and edgeLength becomes infinity.

Audio rendering - org.lwjgl.LWJGLException: Could not locate OpenAL library

I ran into random audio problems when trying to run the jar on some machine with questionable audio setup (I think a few people have messed with the installation of audio drivers). The error looks like the following (the error is thrown at startup):

ALSA lib confmisc.c:768:(parse_card) cannot find card '0'
ALSA lib conf.c:4248:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib conf.c:4248:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1251:(snd_func_refer) error evaluating name
ALSA lib conf.c:4248:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4727:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM default
AL lib: (EE) alsa_open_playback: Could not open playback device 'default': No such file or directory
ALSA lib confmisc.c:768:(parse_card) cannot find card '0'
ALSA lib conf.c:4248:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib conf.c:4248:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1251:(snd_func_refer) error evaluating name
ALSA lib conf.c:4248:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4727:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM default
AL lib: (EE) alsa_open_playback: Could not open playback device 'default': No such file or directory
ALSA lib confmisc.c:768:(parse_card) cannot find card '0'
ALSA lib conf.c:4248:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib conf.c:4248:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1251:(snd_func_refer) error evaluating name
ALSA lib conf.c:4248:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4727:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM default
AL lib: alsa_open_playback: Could not open playback device 'default': No such file or directory
Apr 29, 2019 4:16:34 PM com.jme3.app.LegacyApplication handleError
SEVERE: Uncaught exception thrown in Thread[jME3 Main,5,main]
java.lang.RuntimeException: org.lwjgl.LWJGLException: Could not locate OpenAL library.
	at com.jme3.audio.lwjgl.LwjglALC.createALC(LwjglALC.java:17)
	at com.jme3.audio.openal.ALAudioRenderer.initOpenAL(ALAudioRenderer.java:95)
	at com.jme3.audio.openal.ALAudioRenderer.initialize(ALAudioRenderer.java:225)
	at com.jme3.app.LegacyApplication.initAudio(LegacyApplication.java:283)
	at com.jme3.app.LegacyApplication.initialize(LegacyApplication.java:603)
	at com.jme3.app.SimpleApplication.initialize(SimpleApplication.java:178)
	at com.jme3.system.lwjgl.LwjglAbstractDisplay.initInThread(LwjglAbstractDisplay.java:130)
	at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:211)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.lwjgl.LWJGLException: Could not locate OpenAL library.
	at org.lwjgl.openal.AL.create(AL.java:156)
	at org.lwjgl.openal.AL.create(AL.java:102)
	at org.lwjgl.openal.AL.create(AL.java:206)
	at com.jme3.audio.lwjgl.LwjglALC.createALC(LwjglALC.java:15)
	... 8 more

I couldn't solve this problem because audio is not my area of expertise, but seeing that chordatlas doesn't use any form of audio, I was able to fix this problem by adding a line to disable audio rendering in jme3. Basically, after the initialization of jme3 AppSettings here:

AppSettings settings = new AppSettings( true );

I added a line to disable audio rendering:

settings.setAudioRenderer(null);

and the error stopped showing up. Yay. Clearly this problem doesn't show up very often but just in case this happens again.

Problem with Glasgow dataset and related error

I followed the user interface instructions and downloaded the glasgow_osm.zip dataset. However, on Step 3 downloading panoramas from Google, the following exception is thrown:

javax.imageio.IIOException: Can't get input stream from URL!
	at javax.imageio.ImageIO.read(ImageIO.java:1395)
	at org.twak.readTrace.Mosaic.tile(Mosaic.java:93)
	at org.twak.readTrace.Mosaic.lambda$processLines$2(Mosaic.java:64)
	at org.twak.utils.Parallel$1.run(Parallel.java:97)
Caused by: java.io.FileNotFoundException: http://cbk0.google.com/cbk?output=tile&panoid=vV2SxgjEPMo0Vf3F5qEiEA&zoom=5&x=0&y=0
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1836)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)
	at java.net.URL.openStream(URL.java:1045)
	at javax.imageio.ImageIO.read(ImageIO.java:1393)

If I go to the link thrown by the error (http://cbk0.google.com/cbk?output=tile&panoid=vV2SxgjEPMo0Vf3F5qEiEA&zoom=5&x=0&y=0) then I see a black screen.

If I go to another link used by the previous file in todo.list (http://cbk0.google.com/cbk?output=tile&panoid=mk9dFbTwGNpQiokh5to04w&zoom=5&x=0&y=0) then there is content.

My questions are:

  1. Is this a problem with the data set or the code? My intuition is that this is the fault of the data set. If so, how do I go about fixing this?
  2. This exception occurs on image 74 out of 523, and after the exception, the download of the panorama terminates (so we don't get any more images). Is there any way that we can continue to download the other panorama photos and just ignore this one scene? because it seems silly that the entire download thread would terminate just because of this one image failure.
    The interface also looks like it's missing some panorama points:

pano

Unable to load meshes when trying to port to Gurobi 9.0.2

I built chordatlas on my machine to be able to use it with Gurobi 9.0.2. When I load the provided datasets (for example ny_osm), the GIS footprints appear but I am unable to load the meshes on top.

Steps to reproduce the behavior:

  1. Clone and build the project but I change the gurobi version to 9.0.2 in the pom.xml file
  2. File > Open > ny_osm > tweed.xml
  3. Select the minimesh layer
  4. Click on 'load all'
  5. Here is the error log:
    loading mesh 0 from /Users/roser.hirigoyen/Downloads/ny_osm/minimesh
    loading mesh 1 from /Users/roser.hirigoyen/Downloads/ny_osm/minimesh
    2020-07-02T10:43:31.848-0400 WARNING Cannot locate minimesh/1/000000.png (Flipped) (Mipmapped) for material minimesh/1/model.mtl
    2020-07-02T10:43:31.851-0400 SEVERE Exception
    java.lang.ClassCastException: com.jme3.asset.AssetKey cannot be cast to com.jme3.asset.TextureKey
    at com.jme3.texture.Texture.setKey(Texture.java:425)
    at com.jme3.scene.plugins.MTLLoader.loadTexture(MTLLoader.java:186)
    at com.jme3.scene.plugins.MTLLoader.readLine(MTLLoader.java:232)
    at com.jme3.scene.plugins.MTLLoader.load(MTLLoader.java:304)
    at com.jme3.asset.DesktopAssetManager.loadLocatedAsset(DesktopAssetManager.java:259)
    at com.jme3.asset.DesktopAssetManager.loadAsset(DesktopAssetManager.java:373)
    at com.jme3.scene.plugins.OBJLoader.loadMtlLib(OBJLoader.java:336)
    at com.jme3.scene.plugins.OBJLoader.readLine(OBJLoader.java:389)
    at com.jme3.scene.plugins.OBJLoader.load(OBJLoader.java:578)
    at com.jme3.asset.DesktopAssetManager.loadLocatedAsset(DesktopAssetManager.java:259)
    at com.jme3.asset.DesktopAssetManager.loadAsset(DesktopAssetManager.java:373)
    at com.jme3.asset.DesktopAssetManager.loadModel(DesktopAssetManager.java:416)
    at com.jme3.asset.DesktopAssetManager.loadModel(DesktopAssetManager.java:420)
    at org.twak.tweed.gen.MiniGen.calculate(MiniGen.java:116)
    at org.twak.tweed.gen.MiniGen$4$1.run(MiniGen.java:213)
    at com.jme3.app.LegacyApplication$RunnableWrapper.call(LegacyApplication.java:787)
    at com.jme3.app.AppTask.invoke(AppTask.java:142)
    at com.jme3.app.LegacyApplication.runQueuedTasks(LegacyApplication.java:702)
    at com.jme3.app.LegacyApplication.update(LegacyApplication.java:716)
    at com.jme3.app.SimpleApplication.update(SimpleApplication.java:227)
    at com.jme3.system.lwjgl.LwjglAbstractDisplay.runLoop(LwjglAbstractDisplay.java:151)
    at com.jme3.system.lwjgl.LwjglCanvas.runLoop(LwjglCanvas.java:229)
    at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:232)
    at java.lang.Thread.run(Thread.java:748)

At this point, I think all the meshes should have loaded? Even if I try to right click on a single footprint it doesn't work :(

  • OS: MacOS Catalina
  • Version 10.15.5

Thanks a lot for your work, it's really awesome! :)

Problems with importing obj file and converting to skeleton format

Thanks for your wonderful work.

Now, I am using chordatlas to do some urban scene texturization projects and have some issues when following this pipeline. Firstly, I can not see the imported obj, should I change the world coordinate to make it visible? If so, how?

Secondly, after importing the obj (see the below figure, take the cube as the example), I can not see the "convert to skeleton" button. How can I run the ObjSkelGen to get the facade and window labels (like you showed in the video)?
Screenshot from 2023-02-16 20-32-19
Looking forward to your reply!!!

after importing tweedstreets, tools failed to load

hello, following your tips, I add tweedstreets project to Debug Configurtions -> ClassPath, but Tools failed to load.
if I set the classpath to the chordatlas ,the tools come back. ps: I run the project following your guide seriously, I have already set the resources both in chordatlas and tweedstreet as resource in the project structure. I donnot know how to fix it , please help me . your sincerely.

image

java.net.ConnectException: Connection refused

Hi,
I'm getting the above exception, when starting the JAR. Probably it's due to missing proxy settings, but
adding proxy options with
'java -jar -Xmx10g .\chordatlas-0.0.1-SNAPSHOT.jar -Dhttp.proxyHost=xx.xx.xx.xx -Dhttp.proxyPort=80'
does not change anything. So at the end there's no scene loaded.
Do you have any suggestions?

Thanks

grafik

Docker Build Error

I am building a new jar file using Gurobi 9.0.2 under docker, and I am getting the following error

Steps to reproduce the behaviour:

  1. update Docker file to use Gurobi to 9.0.2
  2. update chordatlas.iml to use Gurobi 9.0.2
  3. update pom.xml to use Gurobi 9.0.2
  4. perform docker build

I am Running Docker under Macosx Catalina
Here is the error

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:39 min
[INFO] Finished at: 2020-07-06T15:19:54+00:00
[INFO] Final Memory: 15M/129M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project chordatlas: Could not resolve dependencies for project org.twak.chordatlas:chordatlas:jar:0.0.1: Failed to collect dependencies at org.geotools:gt-xml:jar:19.1: Failed to read artifact descriptor for org.geotools:gt-xml:jar:19.1: Could not transfer artifact org.geotools:gt-xml:pom:19.1 from/to jcenter (http://jcenter.bintray.com): Access denied to: http://jcenter.bintray.com/org/geotools/gt-xml/19.1/gt-xml-19.1.pom , ReasonPhrase:Forbidden. -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
The command '/bin/sh -c mvn install' returned a non-zero code: 1

It appears like Jcenter expects HTTPS instead
whenever I tried to open the URL as HTTPS, I get the following POST
https://jcenter.bintray.com/org/geotools/gt-xml/19.1/gt-xml-19.1.pom

{
  "errors" : [ {
    "status" : 404,
    "message" : "Could not find resource"
  } ]
}

am I missing something?

FrankenGAN with chordatlas - bikeGAN root not found

I'm trying to run FrankenGAN (from docker) with chordatlas, but for some reason the textures are not loading like in the video.

I ran nvidia-docker run -v input:/home/user/bikegan/input -v output:/home/user/bikegan/output -it --rm twak/bikegan in a folder bikegan-temp, and I see the following output (I truncated lines from the top):

model [BiCycleGANModel] was created
Loading model bicycle_gan...
---------- Networks initialized -------------
[network super6 is awaiting input]
initialization method [xavier]
initialization method [xavier]
-----------------------------------------------
model [BiCycleGANModel] was created
all nets up
[network super10 is awaiting input]

If I check with nvidia-smi, I also see that /home/user/bikegan/test_interactive.py is actively running.

I leave the bikeGAN terminal untouched so the network can keep running. All other work is run on separate terminals.

At this point, if I check my bikegan-temp folder, I see that there is nothing there.

I followed the instructions and added the path to my bikegan-temp folder as my bikeGAN root in the settings menu. However, if I follow the steps in the aforementioned video or as the workflow here, I just see this output:

computing BuildingApp
batch 0/1 
finished 1 BuildingApps
computing FacadeLabelApp
batch 0/6 
timeout trying to get bikeGAN result 16059761037757--0.021439835879290325. 
is bikeGAN running? 
has bikeGAN root been set correctly in the settings menu? ([full path omitted]/bikegan-temp
time taken 10171

At this point, if I check my bikegan-temp folder, I see that it contains an input folder. The structure of the folder are as follows:

There is also no output folder created in my bikeGAN root, which I thought was weird, especially since in the code where the error text is printed there seems to be some outDir that we expect to be created.

Is this the correct workflow I'm supposed to be following, or am I missing something?

remove gurobi dep

We don't really need Gurobi library, it's a two day job to write a branch and bound search...

windows build fails to find CRS EPSG:27700

Follow given build instructions with 2 changes(on Windows):

  • tmp1
  • tmp2

I have built the program successfully, but when I run it, the program shows the error coordinate system error -- failed to find CRS EPSG:27700 and the cmd shows java.lang.NoClassDefFoundError: org/hsqldb/jdbc/JDBCDataSource, can you help me the solve this problem?
Thank you!

Compiling Dataset - in tweed.xml, what is toOrigin and fromOrigin?

I'm currently trying to compile my own dataset, which is not too well documented, so this is sort of a clarification issue.

I'm trying to understand how tweed.xml came to be from the GML file. From the glasgow dataset, I deleted all the files other than the gis.gml file, and then I created a new "world" with File -> New and then choosing the GML file. I didn't see anything show up in chordatlas (black screen with no complaints), and if I hit Save, the tweed.xml file is fairly empty. In order to understand what I need, I started to slowly copy things over from the tweed.xml provided in the dataset.

It seems that a few things are needed in the tweed.xml file in order for the scene to properly show up:

  • a <trans> tag, which I'm guessing is the transformation of the map with respect to lat and long. This value can sort of inferred from the boundedBy tag of the GML file. (I can just take the average value of the boundedBy tags and that seems to be close enough.)

  • a <gmlCoordSystem> tag, specifying what version of the GML coordinate system we are using. This is also inferable from the GML file.

  • a <genList>, where inside is a <org.twak.tweed.gen.GISGen> object that specifies where the GML file is. This is easily doable.

  • finally, a set of two 4x4 matrices <fromOrigin> and <toOrigin>. This is where I'm getting confused - what exactly are these matrices? A quick check shows that they are inverses of each other, but I was wondering if there is a way that they are computed.

no GurobiJni75 in java.library.path

Not sure if this is related to #1 , but I'm trying to run optimize on a profile in chordatlas and I get the following error:

java.lang.UnsatisfiedLinkError: no GurobiJni75 in java.library.path
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
	at java.lang.System.loadLibrary(System.java:1122)
	at gurobi.GurobiJni.<clinit>(GurobiJni.java:243)
	at gurobi.GRBEnv.<init>(GRBEnv.java:41)
	at org.twak.tweed.gen.GurobiSkelSolver.buildProblem(GurobiSkelSolver.java:262)
	at org.twak.tweed.gen.GurobiSkelSolver.solve(GurobiSkelSolver.java:118)
	at org.twak.tweed.gen.SkelFootprint.solve(SkelFootprint.java:288)
	at org.twak.tweed.gen.SkelFootprint.buildAndSolve(SkelFootprint.java:154)
	at org.twak.tweed.gen.skel.SkelGen.optimize(SkelGen.java:150)
	at org.twak.tweed.gen.skel.SkelGen.lambda$new$1(SkelGen.java:135)
	at java.lang.Thread.run(Thread.java:745)

I'm currently running on MacOS 10.13.6. Also, this problem doesn't happen when I run on Ubuntu LTS 14.04. I have to temporarily move off of my Ubuntu machine so I'm trying to run this on my personal MacOS, but this is causing the optimized profile to not be able to be generated. Any clue how to fix this?

Own Data Information

Hi,

I am trying to generate my own data and as input I need panorama and minimesh. I can get the building footprint using QGIS and for panorama images I used Pano Fetch google chrome plugin( The Pano Scrapper Plugin is said to be not working in the link given)

  1. How can I generate the mesh? Whether QGIS is used for this or the following link can be used?
    (https://github.com/tordanik/OSM2World/)
  2. I have Panorama Images using Pano Fetch. How to generate Panos/todo.list which contain the panorama ID?
  3. In the readTrace file,

what the following file/folder path should contain:
/home/twak/dump/blah
/home/twak/Desktop/frames.xml
/home/twak/Desktop/minimesh/

?

some questions of running with my own dataset

Hello, I have two questions to ask. The first one is that I want to test with my own dataset, but I don't know how to get the minimesh in the sample dataset, because I use aerial data for large-scale reconstruction and get mesh of multiple buildings. How to deal with the overall mesh to obtain minimesh?

Second, how does the imported footprint correspond to its mesh?

I am very interested in your work and have read your project code for many days. However, I am a beginner. I would appreciate it if you could explain your code organization structure for me!

Looking forward to your reply, thank you!

Error running super resolution FrankenGAN with ObjSkelGen

I'm testing FrankenGAN on skeletons generated from obj files (ObjSkelGen), and running the net with super (the super resolution networks) seems to throw an error. Running FrankenGAN on default (medium) seems to be working without problems.

When I run the net on super, it will generate all normal textures, and crash only at the part where the super resolution networks starts to work. Prior to crashing, it would have generated all textures on chordatlas (in other words, if I save the output obj file, I can still see the normal-level textures).

I have a dropbox link to the obj file. It should just be 3 prism-shaped buildings. One interesting thing I noticed is that when I imported the obj, the roofs (which are just flat surfaces) are blue. However, in the video for importing objs (https://youtu.be/aJek-uGjyc0), when you imported the cube, the top of the cube seems to be yellow. Does that make a difference?

The error is as follows:

finished 24 DoorTexApps
computing FacadeSuperapp
batch 0/37
super remaining 281
Exception in thread "Thread-2" java.lang.NullPointerException at
org.twak.viewTrace.franken.FacadeSuperApp.renderLabels(FacadeSuperApp.java:121)
   at org.twak.viewTrace.franken.FacadeSuperApp.setTexture(FacadeSuperApp.java:52)
   at org.twak.viewTrace.franken.SuperSuper$2.finished(SuperSuper.java:255)
   at org.twak.viewTrace.franken.Pix2Pix.finished(Pix2Pix.java:213)
   at org.twak.viewTrace.franken.Pix2Pix.submit(Pix2Pix.java:177)
   at org.twak.viewTrace.franken.SuperSuper.facadeContinue(SuperSuper.java:160)
   at org.twak.viewTrace.franken.SuperSuper.computeBatch(SuperSuper.java:104)
   at org.twak.viewTrace.franken.App.computeBatch(App.java:204)
   at org.twak.viewTrace.franken.App.computeWithChildren_(App.java:161)
   at org.twak.viewTrace.franken.App.access$000(App.java:27)
   at org.twak.viewTrace.franken.App$1.run(App.java:173)
   at org.twak.viewTrace.franken.App.computeBatch(App.java:187)
   at org.twak.viewTrace.franken.App.lambda$computeBatch$0(App.java:204)
   at org.twak.viewTrace.franken.PanesTexApp$4$1.finished(PanesTexApp.java:293)
   at org.twak.viewTrace.franken.Pix2Pix.finished(Pix2Pix.java:213)
   at org.twak.viewTrace.franken.Pix2Pix.submit(Pix2Pix.java:177)
   at org.twak.viewTrace.franken.PanesTexApp$4.finished(PanesTexApp.java:284)
   at org.twak.viewTrace.franken.Pix2Pix.finished(Pix2Pix.java:213)
   at org.twak.viewTrace.franken.Pix2Pix.submit(Pix2Pix.java:139)
   at org.twak.viewTrace.franken.PanesTexApp.computeTextures(PanesTexApp.java:279)
   at org.twak.viewTrace.franken.PanesTexApp$3.finished(PanesTexApp.java:216)
   at org.twak.viewTrace.franken.Pix2Pix.finished(Pix2Pix.java:206)
   at org.twak.viewTrace.franken.Pix2Pix.submit(Pix2Pix.java:139)
   at org.twak.viewTrace.franken.PanesTexApp.computeBatch(PanesTexApp.java:181)
   at org.twak.viewTrace.franken.App.computeBatch(App.java:204)
   at org.twak.viewTrace.franken.App.lambda$computeBatch$0(App.java:204)
   at org.twak.viewTrace.franken.PanesTexApp$4$1.finished(PanesTexApp.java:293)
   at org.twak.viewTrace.franken.Pix2Pix.finished(Pix2Pix.java:213)
   at org.twak.viewTrace.franken.Pix2Pix.submit(Pix2Pix.java:177)
   at org.twak.viewTrace.franken.PanesTexApp$4.finished(PanesTexApp.java:284)
   at org.twak.viewTrace.franken.Pix2Pix.finished(Pix2Pix.java:213)
   at org.twak.viewTrace.franken.Pix2Pix.submit(Pix2Pix.java:139)
   at org.twak.viewTrace.franken.PanesTexApp.computeTextures(PanesTexApp.java:279)
   at org.twak.viewTrace.franken.PanesTexApp$3.finished(PanesTexApp.java:216)
   at org.twak.viewTrace.franken.Pix2Pix.finished(Pix2Pix.java:206)
   at org.twak.viewTrace.franken.Pix2Pix.submit(Pix2Pix.java:139)
   at org.twak.viewTrace.franken.PanesTexApp.computeBatch(PanesTexApp.java:181)
   at org.twak.viewTrace.franken.App.computeBatch(App.java:204)
   at org.twak.viewTrace.franken.App.computeWithChildren_(App.java:161)
   at org.twak.viewTrace.franken.App.access$000(App.java:27)
   at org.twak.viewTrace.franken.App$1.run(App.java:173)
   at org.twak.viewTrace.franken.App.computeBatch(App.java:187)
   at org.twak.viewTrace.franken.App.lambda$computeBatch$0(App.java:204)
   at org.twak.viewTrace.franken.PanesTexApp$4$1.finished(PanesTexApp.java:293)
   at org.twak.viewTrace.franken.Pix2Pix.finished(Pix2Pix.java:213)
   at org.twak.viewTrace.franken.Pix2Pix.submit(Pix2Pix.java:139)
   at org.twak.viewTrace.franken.PanesTexApp$4.finished(PanesTexApp.java:284)
   at org.twak.viewTrace.franken.Pix2Pix.finished(Pix2Pix.java:213)
   at org.twak.viewTrace.franken.Pix2Pix.submit(Pix2Pix.java:177)
   at org.twak.viewTrace.franken.PanesTexApp.computeTextures(PanesTexApp.java:279)
   at org.twak.viewTrace.franken.PanesTexApp$3.finished(PanesTexApp.java:216)
   at org.twak.viewTrace.franken.Pix2Pix.finished(Pix2Pix.java:206)
   at org.twak.viewTrace.franken.Pix2Pix.submit(Pix2Pix.java:139)
   at org.twak.viewTrace.franken.PanesTexApp.computeBatch(PanesTexApp.java:181)
   at org.twak.viewTrace.franken.App.computeBatch(App.java:204)
   at org.twak.viewTrace.franken.App.lambda$computeBatch$0(App.java:204)
   at org.twak.viewTrace.franken.PanesTexApp$4$1.finished(PanesTexApp.java:293)
   at org.twak.viewTrace.franken.Pix2Pix.finished(Pix2Pix.java:213)
   at org.twak.viewTrace.franken.Pix2Pix.submit(Pix2Pix.java:139)
   at org.twak.viewTrace.franken.PanesTexApp$4.finished(PanesTexApp.java:284)
   at org.twak.viewTrace.franken.Pix2Pix.finished(Pix2Pix.java:213)
   at org.twak.viewTrace.franken.Pix2Pix.submit(Pix2Pix.java:177)
   at org.twak.viewTrace.franken.PanesTexApp.computeTextures(PanesTexApp.java:279)
   at org.twak.viewTrace.franken.PanesTexApp$3.finished(PanesTexApp.java:216)
   at org.twak.viewTrace.franken.Pix2Pix.finished(Pix2Pix.java:206)
   at org.twak.viewTrace.franken.Pix2Pix.submit(Pix2Pix.java:139)
   at org.twak.viewTrace.franken.PanesTexApp.computeBatch(PanesTexApp.java:181)
   at org.twak.viewTrace.franken.App.computeBatch(App.java:204)
   at org.twak.viewTrace.franken.App.lambda$computeBatch$0(App.java:204)
   at org.twak.viewTrace.franken.PanesTexApp$4$1.finished(PanesTexApp.java:293)
   at org.twak.viewTrace.franken.Pix2Pix.finished(Pix2Pix.java:213)
   at org.twak.viewTrace.franken.Pix2Pix.submit(Pix2Pix.java:139)
   at org.twak.viewTrace.franken.PanesTexApp$4.finished(PanesTexApp.java:284)
...

CRS factories not in fat-jar

Usign the jar, I get the following message when loading a project with a CRS.

similar:
https://stackoverflow.com/questions/27429097/geotools-cannot-find-hsql-epsg-db-throws-error-nosuchauthoritycodeexception:

Solution
In the jar, in /META-INF/services/org.opengis.referencing.crs.CRSAuthorityFactory
add:
org.geotools.referencing.factory.epsg.ThreadedHsqlEpsgFactory
to the top of the list

org.opengis.referencing.NoSuchAuthorityCodeException: No code "EPSG:27700" from authority "EPSG" found for object of type "EngineeringCRS".
	at org.geotools.referencing.factory.epsg.CartesianAuthorityFactory.noSuchAuthorityException(CartesianAuthorityFactory.java:136)
	at org.geotools.referencing.factory.epsg.CartesianAuthorityFactory.createEngineeringCRS(CartesianAuthorityFactory.java:130)
	at org.geotools.referencing.factory.epsg.CartesianAuthorityFactory.createCoordinateReferenceSystem(CartesianAuthorityFactory.java:121)
	at org.geotools.referencing.factory.AuthorityFactoryAdapter.createCoordinateReferenceSystem(AuthorityFactoryAdapter.java:802)
	at org.geotools.referencing.factory.ThreadedAuthorityFactory.createCoordinateReferenceSystem(ThreadedAuthorityFactory.java:731)
	at org.geotools.referencing.DefaultAuthorityFactory.createCoordinateReferenceSystem(DefaultAuthorityFactory.java:179)
	at org.geotools.referencing.CRS.decode(CRS.java:520)

street information

hello,Thanks for your great work!
Apart from the paper itself, are you able to tell me about how were the roads in the rendering images generated?
Manually generated or fully automated?Looking forward to your reply.

problems about the gis data

Hello, I use the OSM data downloaded from OpenStreetMap and convert it into GML data with QGIS. However, when importing Chordatlas, the proportion of footprints has changed. I don't know why.
As a result, I couldn't align mesh and footprint because of the wrong scale.
It is normal to preview footprint in QGIS in picture 1.
QQ截图20201225143004
and the result after importing into the chordatlas is as the second picture。
QQ截图20201225143326

Utils folder

Hello,

The following import files are not available in repository.

import org.twak.utils.BitTwiddle;
import org.twak.utils.Mathz;
import org.twak.utils.collections.CountThings;
import org.twak.utils.geom.ObjDump;

import com.thoughtworks.xstream.XStream;

and ObjDump is not used.

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.