While on WCDMA networks getNeighboringCells() method returns a collection of PSC values (other are invalid). I guess this means that I should use rest of identifier values from current cell and PSC (Primary Scrambling Code) from neighboring cell to create global Cell ID - (MCC, MNC, LAC, CID, PSC). However this generates a lot of cells with same 4 values and only one different and I'm not sure if this is correct.
mcc mnc lac cid psc neighboring
-------------------------------------------------------
260 2 52703 59360215 6 true
260 2 52703 59360215 5 true
260 2 52703 59360215 415 false
Should I treat PSC as a part of global Cell ID? Do such cells really exist as a distinct antennas or these are just different channels/layers/etc. and can vary at time?
While a particular PSC and CGI (Cell Global Identity) may refer to the same cell, they are independent and the PSC is not used to calculate the CGI. The PSC is a pseudonoise sequence used in the WCDMA multiple access technology, while the CGI is just an identifier used in UMTS (which employs WCDMA).
The PSC is associated with a single cell, however it is possible to transmit multiple cells from the same antenna (think multiple carriers, or layers, over the same coverage area).
Here is a similar question on SO: eCGI and CGI for LTE and GSM networks