Ultra-violet photoemission spectroscopy is a widely-used experimental technique to investigate the valence electronic structure of surfaces and interfaces. When detecting the intensity of the emitted electrons not only as a function of their kinetic energy, but also depending on their emission angle, as is done in angle-resolved photoemission spectroscopy (ARPES), extremely rich information about the electronic structure of the investigated sample can be extracted. For organic molecules adsorbed as well-oriented ultra-thin films on metallic surfaces, ARPES has evolved into a technique called photoemission tomography (PT). By approximating the final state of the photoemitted electron as a free electron, PT uses the angular dependence of the photocurrent, a so-called momentum map or k-map, and interprets it as the Fourier transform of the initial state’s molecular orbital, thereby gaining insights into the geometric and electronic structure of organic/metal interfaces.In this contribution, we present kMap.py which is a Python program that enables the user, via a PyQt-based graphical user interface, to simulate photoemission momentum maps of molecular orbitals and to perform a one-to-one comparison between simulation and experiment. Based on the plane wave approximation for the final state, simulated momentum maps are computed numerically from a fast Fourier transform (FFT) of real space molecular orbital distributions, which are used as program input and taken from density functional calculations. The program allows the user to vary a number of simulation parameters, such as the final state kinetic energy, the molecular orientation or the polarization state of the incident light field. Moreover, also experimental photoemission data can be loaded into the program, enabling a direct visual comparison as well as an automatic optimization procedure to determine structural parameters of the molecules or weights of molecular orbitals contributions. With an increasing number of experimental groups employing photoemission tomography to study molecular adsorbate layers, we expect kMap.py to serve as a helpful analysis software to further extend the applicability of PT. Program summaryProgram Title:kMap.pyCPC Library link to program files:https://doi.org/10.17632/tnrm9jcccc.1Developer’s respository link:https://github.com/brands-d/kMap/Code Ocean capsule:https://codeocean.com/capsule/5788845Licensing provisions: GPLv3Programming language: Python 3.xNature of problem: Photoemission tomography (PT) has evolved as a powerful experimental method to investigate the electronic and geometric structure of organic molecular films [1]. It is based on valence band angle-resolved photoemission spectroscopy and seeks an interpretation of the angular dependence of the photocurrent, a so-called momentum map, from a given initial state in terms of the spatial structure of molecular orbitals. For this purpose, PT heavily relies on a simulation platform which is capable of efficiently predicting momentum maps for a variety of organic molecules, which allows for a convenient way of treating the effect of molecular orientations, and which also accounts for other experimental parameters such as the geometrical setup and nature of the incident photon source. Thereby, PT has been used to determine molecular geometries, gain insight into the nature of the surface chemistry, unambiguously determine the orbital energy ordering in molecular homo- and heterostructures and even reconstruct the orbitals of adsorbed molecules [1–4].Solution method:kMap.py is a Python program that enables the user, via a PyQt-based graphical user interface, to simulate photoemission momentum maps of molecular orbitals and to perform a one-to-one comparison between simulation and experiment. Based on the plane wave approximation for the final state, simulated momentum maps are computed numerically from a fast Fourier transform (FFT) of real space molecular orbital distributions [2] which are used as program input and which are usually obtained from density functional calculations. The user can vary a number of simulation parameters such as the final state kinetic energy, the molecular orientation or the polarization state of the incident light field. Moreover, also experimental photoemission data can be loaded into the program, enabling a direct visual comparison as well as an automatic optimization procedure to minimize the difference between simulated and measured momentum maps. Thereby, structural parameters of the molecules [2] and the weights of molecular orbitals to experimentally observed emission features can be determined [3].