https://www.viabtc.com/tools/broadcast
Which allows a transaction creator to give their signed transaction directly to a mining pool, allowing that mining pool to then broadcast the transaction to others (if the pool even wants to).
Many people, including myself, use services like this at times rather than broadcasting a transaction from our own connected node. At BEST, in situations like that, you'll only be able to tell which pool received the transaction first, but won't know anything at all about who gave the transaction to the pool. At worst, if the pool chooses not to broadcast the transaction and instead just adds it to their own block, you won't even see the transaction at all until you see it already in a block.
This is why the op has no real shot at understanding location of the true creator of a tx.
here is another variation. I point a gpu miner to nicehash and use a fresh never used btc address as my final payment area. ten other people do this with 10 fresh btc addies.
all ten of us have decent amount of gpu miners and mine about 0.1 btc in a day
in theory nice hash will create a transaction for 1 btc total to 10 different btc addresses each one getting 0.1 btc
so you know nicehash sent the tx but it is worthless as they sent it to 10 anonymous btc addresses
those 10 miners can further mine 0.1 btc a day for 10 days. end result is 10 addresses with 1 btc.
then change the ten locations to 10 new addresses . and in 10 days 10 coins
so in a year the ten large miners could have 36.5 coins each spread on 37 address.
and even though every btc coin was sent to those address from nicehash you would not know if
it was one guy with a super shit ton of hash. or 10 guys with just a ton of hash.
all you would know is nicehase paid out to 10x 37 addresses a total of 365 btc.
in fact you would not know if gpus mined the coins or asics mined the coins.
Other anonymous pools exist. so find a tx source works only some of the time.