No, those are not ICAO codes. ICAO airport identifiers consist of four letters, full stop. But that does not mean that any code which is other-than-four-letters is "invalid" or "unofficial!" There are more standards for identifying airports than just the ICAO code.
As explained in this Av.SE answer, FAA Location Identifiers for airports have the following formats:
- Three letters
- One number and two letters
- One letter and two numbers
- Two letters and two numbers
At first blush, some of those K-codes appear to be valid FAA LIDs of that last format... but the four-character FAA LID uses two consecutive letters which are based on the USPS abbreviation for the state where they are located, for example MA
or SD
. When they run out they can get creative, like IS
for Illinois, but KM
and KF
from your examples do not correspond with any US state.
So as it happens, the identifiers you posted are not valid airport identifiers—not under the ICAO system and not under the FAA system either! Those four-character identifiers beginning with K
are National Weather Service identifiers for the weather stations located at various airports. Even though the airports themselves have only an FAA LID, not an ICAO airport code, the NWS identifies all CONUS weather stations using a four-character code prefixed with K
. (Note that there does not need to be an airport for there to be a weather station—Mount Washington Observatory is identified as KMWN
.) If you strip the leading K
from your example identifiers you will discover valid and current FAA LIDs which refer to active airports.
It is true that having an advanced on-airport weather station (and a 5,000' runway) is grounds for assigning a three-letter, rather than letter-number, FAA LID. But if the weather station was added after the fact, the general preference is to keep the LID the same.