What types of dungeons can be found on which planets in Starbound?

From what I understand, dungeons are distributed according to planet biomes. Which dungeons can be found on which planet type then? For example, I'm pretty sure you can find floran dungeons on jungle worlds, but I would like a definitive list of the rest.


I wrote a quick script to parse /terrestrial_worlds.config (or rather the same with C++-style comments stripped), and here's the raw output as of a few days ago (February 3, 2015):

alien:

apexresearchlab, apextestchamber, avianairship, aviantemple, aviantomb, aviantower, floranhell, floranhuntinggrounds, glitchcastle, glitchsewer, humanbunker, humanprison, scifidungeon

desert:

apexresearchlab, apextestchamber, apextowerblock, aviantomb, aviantower, avianvillage, floranhuntinggrounds, floranvillagetower, glitchsewer, glitchvillage, humanbunker

forest:

apexresearchlab, apextestchamber, apextowerblock, aviantomb, aviantower, avianvillage, floranhuntinggrounds, floranvillagetower, glitchsewer, glitchvillage, humanbunker

garden:

naturalcave

jungle:

apexresearchlab, apextestchamber, avianairship, aviantemple, aviantomb, aviantower, floranhell, floranhuntinggrounds, glitchcastle, glitchsewer, humanbunker, humanprison, scifidungeon

savannah:

apexresearchlab, apextestchamber, apextowerblock, aviantomb, aviantower, avianvillage, floranhuntinggrounds, floranvillagetower, glitchsewer, glitchvillage, humanbunker

scorched:

apexresearchlab, apextestchamber, avianairship, aviantemple, aviantomb, aviantower, floranhell, floranhuntinggrounds, glitchcastle, glitchsewer, humanbunker, humanprison, scifidungeon

snow:

apexresearchlab, apextestchamber, apextowerblock, aviantomb, aviantower, avianvillage, floranhuntinggrounds, floranvillagetower, glitchsewer, glitchvillage, humanbunker

tundra:

apexresearchlab, apextestchamber, avianairship, aviantemple, aviantomb, aviantower, floranhell, floranhuntinggrounds, glitchcastle, glitchsewer, humanbunker, humanprison, scifidungeon

volcanic:

apexresearchlab, apextestchamber, avianairship, aviantemple, aviantomb, aviantower, floranhell, floranhuntinggrounds, glitchcastle, glitchsewer, humanbunker, humanprison, scifidungeon

"garden" is the lush planet type, "savannah" is the arid planet type, "scorched" is the dead planet type, and "tundra" is the snow planet type with the extreme cold warning.

EDIT:

Here's the Python 2.x script I used to extract the data. Uses py-starbound and commentjson:

#!/usr/bin/python

import sys

import starbound
import commentjson

with starbound.open_file(sys.argv[1]) as assets:
  tw = commentjson.loads(assets.get('/terrestrial_worlds.config'))

for pt in sorted(tw['planetTypes']):
  if 'dungeons' in tw['planetTypes'][pt]['layers']['surface']:
    print '{}:'.format(pt)
    print ', '.join(sorted(tw['planetTypes'][pt]['layers']['surface']['dungeons']))
    print

Just pass it the location of packed.pak.