diff --git a/RTCP/Cobalt/CoInterface/src/Parset.cc b/RTCP/Cobalt/CoInterface/src/Parset.cc
index f6a3a46b2c9bed8971df5e1c0589e5e3f57c7c81..82ca98c05a641d25ef43a380210a1d99ffbe8750 100644
--- a/RTCP/Cobalt/CoInterface/src/Parset.cc
+++ b/RTCP/Cobalt/CoInterface/src/Parset.cc
@@ -613,28 +613,6 @@ namespace LOFAR
     }
 
 
-    std::vector<double> Parset::subbandToFrequencyMapping() const
-    {
-      vector<double> freqs(nrSubbands());
-
-      for (unsigned subband = 0; subband < freqs.size(); ++subband)
-        freqs[subband] = settings.subbands[subband].centralFrequency;
-
-      return freqs;
-    }
-
-
-    std::vector<unsigned> Parset::subbandToSAPmapping() const
-    {
-      vector<unsigned> saps(nrSubbands());
-
-      for (unsigned subband = 0; subband < saps.size(); ++subband)
-        saps[subband] = settings.subbands[subband].SAP;
-
-      return saps;
-    }
-
-
     std::vector<double> Parset::centroidPos(const std::string &stations) const
     {
       std::vector<double> Centroid, posList, pos;
@@ -687,12 +665,6 @@ namespace LOFAR
     {
       return settings.delayCompensation.referencePhaseCenter;
     }
-
-
-    std::vector<double> Parset::getPhaseCentreOf(const string &name) const
-    {
-      return settings.stations[stationIndex(name)].phaseCenter;
-    }
     /*
        std::vector<double> Parset::getPhaseCorrection(const string &name, char pol) const
        {
@@ -790,20 +762,7 @@ namespace LOFAR
 
     std::string Parset::getAnaBeamDirectionType() const
     {
-      return settings.anaBeam.direction.type;
-    }
-
-
-    vector<unsigned> Parset::subbandToRSPboardMapping(const string &stationName) const
-    {
-      return settings.stations[stationIndex(stationName)].rspBoardMap;
-    }
-
-
-    vector<unsigned> Parset::subbandToRSPslotMapping(const string &stationName) const
-    {
-      return settings.stations[stationIndex(stationName)].rspSlotMap;
-    }
+      return settings.anaBeam.direction.type;   }
 
     double Parset::getTime(const std::string &name, const std::string &defaultValue) const
     {
@@ -858,16 +817,6 @@ namespace LOFAR
       return settings.stations[index].name;
     }
 
-    int Parset::stationIndex(const std::string &name) const
-    {
-      std::vector<std::string> names = allStationNames();
-      for (unsigned i = 0; i < names.size(); i++)
-        if (names[i] == name)
-          return i;
-
-      return -1;
-    }
-
     std::vector<std::string> Parset::allStationNames() const
     {
       vector<string> names(nrStations());
@@ -1073,16 +1022,6 @@ namespace LOFAR
       return settings.correlator.nrChannels;
     }
 
-    vector<unsigned> Parset::subbandList() const
-    {
-      vector<unsigned> nrs(nrSubbands());
-
-      for (unsigned subband = 0; subband < nrs.size(); ++subband)
-        nrs[subband] = settings.subbands[subband].stationIdx;
-
-      return nrs;
-    }
-
     size_t Parset::nrSubbands() const
     {
       return settings.subbands.size();
@@ -1108,11 +1047,6 @@ namespace LOFAR
       return "ITRF";
     }
 
-    double Parset::clockCorrectionTime(const std::string &station) const
-    {
-      return settings.stations[stationIndex(station)].clockCorrection;
-    }
-
     bool Parset::correctBandPass() const
     {
       return settings.corrections.bandPass;
diff --git a/RTCP/Cobalt/CoInterface/src/Parset.h b/RTCP/Cobalt/CoInterface/src/Parset.h
index f5e96f5ee6b6124ff32e5a474ee9cc29c06e241c..8e9ed5b98d74b972a5bae93c5388ebc3cd7e32e0 100644
--- a/RTCP/Cobalt/CoInterface/src/Parset.h
+++ b/RTCP/Cobalt/CoInterface/src/Parset.h
@@ -510,10 +510,8 @@ namespace LOFAR
       bool                        delayCompensation() const;
       unsigned                    nrCalcDelays() const;
       bool                        correctClocks() const;
-      double                      clockCorrectionTime(const std::string &station) const;
       bool                        correctBandPass() const;
       std::string                 stationName(int index) const;
-      int                         stationIndex(const std::string &name) const;
       std::vector<std::string>    allStationNames() const;
 
       bool                        outputCorrelatedData() const;
@@ -563,14 +561,8 @@ namespace LOFAR
       double                      dispersionMeasure(unsigned beam = 0,unsigned pencil = 0) const;
       std::vector<std::string>    TABStationList(unsigned beam = 0,unsigned pencil = 0, bool raw = false) const;
 
-      std::vector<unsigned>       subbandList() const;
       size_t                      nrSubbands() const;
 
-      std::vector<unsigned>       subbandToSAPmapping() const;
-      std::vector<double>         subbandToFrequencyMapping() const;
-      std::vector<unsigned>       subbandToRSPboardMapping(const std::string &stationName) const;
-      std::vector<unsigned>       subbandToRSPslotMapping(const std::string &stationName) const;
-
       double channel0Frequency( size_t subband ) const;
 
       bool                        realTime() const;
diff --git a/RTCP/Cobalt/GPUProc/src/cuda/WorkQueues/CorrelatorWorkQueue.cc b/RTCP/Cobalt/GPUProc/src/cuda/WorkQueues/CorrelatorWorkQueue.cc
index 7f07f905893882e66976edbb4040c1b55bcb3684..a358dc3e4ff8dd831068f0d0936f4fe4f3e9ac4f 100644
--- a/RTCP/Cobalt/GPUProc/src/cuda/WorkQueues/CorrelatorWorkQueue.cc
+++ b/RTCP/Cobalt/GPUProc/src/cuda/WorkQueues/CorrelatorWorkQueue.cc
@@ -311,7 +311,7 @@ namespace LOFAR
 
       if (ps.delayCompensation())
       {
-        unsigned SAP = ps.subbandToSAPmapping()[subband];
+        unsigned SAP = ps.settings.subbands[subband].SAP;
 
         // Only upload delays if they changed w.r.t. the previous subband.
         if ((int)SAP != prevSAP || (ssize_t)block != prevBlock) {
diff --git a/RTCP/Cobalt/GPUProc/src/opencl/WorkQueues/CorrelatorWorkQueue.cc b/RTCP/Cobalt/GPUProc/src/opencl/WorkQueues/CorrelatorWorkQueue.cc
index 6061bd114d2c043e981ef46c80814ef2f276a965..4ff1b52013e69095722006ac7e3b809e927f9510 100644
--- a/RTCP/Cobalt/GPUProc/src/opencl/WorkQueues/CorrelatorWorkQueue.cc
+++ b/RTCP/Cobalt/GPUProc/src/opencl/WorkQueues/CorrelatorWorkQueue.cc
@@ -412,7 +412,7 @@ namespace LOFAR
       // Moved from doWork() The delay data should be available before the kernels start.
       // Queue processed ordered. This could main that the transfer is not nicely overlapped
 
-      unsigned SAP = ps.subbandToSAPmapping()[subband];
+      unsigned SAP = ps.settings.subbands[subband].SAP;
 
       // Only upload delays if they changed w.r.t. the previous subband
       if ((int)SAP != prevSAP || (ssize_t)block != prevBlock) {
diff --git a/RTCP/Cobalt/OutputProc/src/MSWriterCorrelated.cc b/RTCP/Cobalt/OutputProc/src/MSWriterCorrelated.cc
index f685cace959bea504edc183815987d349fb7aad5..337ce4398874ac41b04234a8bdf8d3c18dafaf58 100644
--- a/RTCP/Cobalt/OutputProc/src/MSWriterCorrelated.cc
+++ b/RTCP/Cobalt/OutputProc/src/MSWriterCorrelated.cc
@@ -81,10 +81,6 @@ namespace LOFAR
           baselineNames[bl++] = str(format("%s_%s") % stationNames[s1] % stationNames[s2]);
 #endif
 
-      const vector<unsigned> subbands = itsParset.subbandList();
-      const vector<unsigned> SAPs = itsParset.subbandToSAPmapping();
-      const vector<double> frequencies = itsParset.subbandToFrequencyMapping();
-
       itsConfiguration.add("fileFormat",           "AIPS++/CASA");
       itsConfiguration.add("filename",             LOFAR::basename(msName));
       itsConfiguration.add("size",                 "0");
@@ -94,12 +90,12 @@ namespace LOFAR
       itsConfiguration.add("startTime",            parset.getString("Observation.startTime"));
       itsConfiguration.add("duration",             "0");
       itsConfiguration.add("integrationInterval",  str(format("%f") % parset.IONintegrationTime()));
-      itsConfiguration.add("centralFrequency",     str(format("%f") % (frequencies[subbandIndex])));
-      itsConfiguration.add("channelWidth",         str(format("%f") % (parset.channelWidth())));
+      itsConfiguration.add("centralFrequency",     str(format("%f") % parset.settings.subbands[subbandIndex].centralFrequency));
+      itsConfiguration.add("channelWidth",         str(format("%f") % parset.channelWidth()));
       itsConfiguration.add("channelsPerSubband",   str(format("%u") % parset.nrChannelsPerSubband()));
-      itsConfiguration.add("stationSubband",       str(format("%u") % subbands[subbandIndex]));
+      itsConfiguration.add("stationSubband",       str(format("%u") % parset.settings.subbands[subbandIndex].stationIdx));
       itsConfiguration.add("subband",              str(format("%u") % subbandIndex));
-      itsConfiguration.add("SAP",                  str(format("%u") % SAPs[subbandIndex]));
+      itsConfiguration.add("SAP",                  str(format("%u") % parset.settings.subbands[subbandIndex].SAP));
     }
 
 
diff --git a/RTCP/Cobalt/OutputProc/src/MSWriterDAL.cc b/RTCP/Cobalt/OutputProc/src/MSWriterDAL.cc
index df7c1a993b47479c53ecf58777dfc99d7281c82c..31cf3f3e7d2ea1e8e70586f828de3c6ffe46bd34 100644
--- a/RTCP/Cobalt/OutputProc/src/MSWriterDAL.cc
+++ b/RTCP/Cobalt/OutputProc/src/MSWriterDAL.cc
@@ -123,12 +123,6 @@ namespace LOFAR
       unsigned nrBlocks = parset.nrBeamFormedBlocks();
       unsigned nrSubbands = itsInfo.subbands.size();
       const vector<unsigned> &subbandIndices = itsInfo.subbands;
-      const vector<unsigned> allSubbands = parset.subbandList();
-
-      vector<unsigned> subbands(nrSubbands, 0); // actual subbands written in this file
-
-      for (unsigned sb = 0; sb < nrSubbands; sb++)
-        subbands[sb] = allSubbands[subbandIndices[sb]];
 
       vector<string> stokesVars;
       vector<string> stokesVars_LTA;
@@ -208,7 +202,9 @@ namespace LOFAR
       // contain frequencies from both the top and the bottom half-channel.
       double frequencyOffsetPPF = parset.nrChannelsPerSubband() > 1 ? 0.5 * channelBandwidth : 0.0;
 
-      const vector<double> subbandCenterFrequencies = parset.subbandToFrequencyMapping();
+      vector<double> subbandCenterFrequencies(parset.nrSubbands());
+      for(size_t sb = 0; sb < parset.nrSubbands(); ++sb)
+        subbandCenterFrequencies[sb] = parset.settings.subbands[sb].centralFrequency;
 
       double min_centerfrequency = *min_element( subbandCenterFrequencies.begin(), subbandCenterFrequencies.end() );
       double max_centerfrequency = *max_element( subbandCenterFrequencies.begin(), subbandCenterFrequencies.end() );
@@ -541,10 +537,10 @@ namespace LOFAR
 
       ostringstream stationSubbandsStr;
       stationSubbandsStr << "[";
-      for (size_t i = 0; i < subbands.size(); ++i) {
+      for (size_t i = 0; i < nrSubbands; ++i) {
         if( i > 0 )
           stationSubbandsStr << ", ";
-        stationSubbandsStr << str(format("%u") % subbands[i]);
+        stationSubbandsStr << str(format("%u") % parset.settings.subbands[subbandIndices[i]].stationIdx);
       }
       stationSubbandsStr << "]";
 
diff --git a/RTCP/Cobalt/OutputProc/src/MeasurementSetFormat.cc b/RTCP/Cobalt/OutputProc/src/MeasurementSetFormat.cc
index 9752d13adb8701c67408e5d68647bb7ea3a62b1c..f45682d9dc42069b0a08fb45acdcfaa39f390915 100644
--- a/RTCP/Cobalt/OutputProc/src/MeasurementSetFormat.cc
+++ b/RTCP/Cobalt/OutputProc/src/MeasurementSetFormat.cc
@@ -170,8 +170,7 @@ namespace LOFAR
         }
 
         // Get subarray id (formerly known as beam).
-        const vector<unsigned> subbandToSAPmapping = itsPS.subbandToSAPmapping();
-        int subarray = subbandToSAPmapping[subband];
+        int subarray = itsPS.settings.subbands[subband].SAP;
 
         fillAntenna(antMPos);
         fillFeed();
@@ -392,7 +391,10 @@ namespace LOFAR
       timeRange[1] = itsStartTime + itsNrTimes * itsTimeStep;
 
       // Get minimum and maximum frequency.
-      vector<double> freqs = itsPS.subbandToFrequencyMapping();
+      vector<double> freqs(itsPS.nrSubbands());
+      for(size_t sb = 0; sb < itsPS.nrSubbands(); ++sb)
+         freqs[sb] = itsPS.settings.subbands[sb].centralFrequency;
+
       ASSERT( freqs.size() > 0 );
 
       double minFreq = *std::min_element( freqs.begin(), freqs.end() );
@@ -468,7 +470,7 @@ namespace LOFAR
 
     void MeasurementSetFormat::fillSpecWindow(unsigned subband)
     {
-      const double refFreq = itsPS.subbandToFrequencyMapping()[subband];
+      const double refFreq = itsPS.settings.subbands[subband].centralFrequency;
       const size_t nchan = itsPS.nrChannelsPerSubband();
       const double chanWidth = itsPS.channelWidth();
       const double totalBW = nchan * chanWidth;
diff --git a/RTCP/Cobalt/OutputProc/src/OutputThread.cc b/RTCP/Cobalt/OutputProc/src/OutputThread.cc
index c7d8c734d81a3f83f6a3028f5e483c807fe2c8a3..c12de780ff21fbfaaec12aee22760c0bcb7da262 100644
--- a/RTCP/Cobalt/OutputProc/src/OutputThread.cc
+++ b/RTCP/Cobalt/OutputProc/src/OutputThread.cc
@@ -163,21 +163,15 @@ namespace LOFAR
       case CORRELATED_DATA:
         itsNrExpectedBlocks = itsParset.nrCorrelatedBlocks();
 
-        {
-          const vector<unsigned> subbands = itsParset.subbandList();
-          const vector<unsigned> SAPs = itsParset.subbandToSAPmapping();
-          const vector<double> frequencies = itsParset.subbandToFrequencyMapping();
-
-          LOG_INFO_STR(itsLogPrefix << "Characteristics: "
-                                    << "SAP " << SAPs[itsStreamNr]
-                                    << ", subband " << subbands[itsStreamNr]
-                                    << ", centralfreq " << setprecision(8) << frequencies[itsStreamNr] / 1e6 << " MHz"
-                                    << ", duration " << setprecision(8) << itsNrExpectedBlocks * itsParset.IONintegrationTime() << " s"
-                                    << ", integration " << setprecision(8) << itsParset.IONintegrationTime() << " s"
-                                    << ", channels " << itsParset.nrChannelsPerSubband()
-                                    << ", channelwidth " << setprecision(8) << itsParset.channelWidth() / 1e3 << " kHz"
-                       );
-        }
+        LOG_INFO_STR(itsLogPrefix << "Characteristics: "
+                                  << "SAP " << itsParset.settings.subbands[itsStreamNr].SAP
+                                  << ", subband " << itsParset.settings.subbands[itsStreamNr].stationIdx
+                                  << ", centralfreq " << setprecision(8) << itsParset.settings.subbands[itsStreamNr].centralFrequency / 1e6 << " MHz"
+                                  << ", duration " << setprecision(8) << itsNrExpectedBlocks * itsParset.IONintegrationTime() << " s"
+                                  << ", integration " << setprecision(8) << itsParset.IONintegrationTime() << " s"
+                                  << ", channels " << itsParset.nrChannelsPerSubband()
+                                  << ", channelwidth " << setprecision(8) << itsParset.channelWidth() / 1e3 << " kHz"
+                     );
         break;
       case BEAM_FORMED_DATA:
         itsNrExpectedBlocks = itsParset.nrBeamFormedBlocks();