Q:

Pass data from component to service 1.  Service 2 depends on service 1.  Service 2 data to component

I am creating a weather application. 
I have view.component, coord.service, weather.service. 
I have view.component for user input.  I want to pass input from component to coord.service which makes an API call and returns coordinates.  The coordinates should be passed to weather.service which also makes an API call and returns an Observable back to view.component for rendering into HTML.  I cannot figure out/understand how to make this happen.  
view.component.ts:
@Component({
  selector: 'app-view',
  templateUrl: './view.component.html',
  styleUrls: ['./view.component.css']
})

export class ViewComponent implements OnChanges {
  alerts: any;
  currData:any = {};

  @Input() location: string;

  coordinate = [];

  constructor(public weatherService: WeatherService) { }

  ngOnChanges(changes: SimpleChanges) {
    // pass location to coord.service -> i don't know what to do from here
    //this.weatherData(this.coordinate);
  }

  weatherData(coord: Array<number>) {
    this.weatherService.getWeatherInfo(coord).subscribe((data) => {
     // do something with data and make it render
    });
  }

coord.service
@Injectable({
  providedIn: 'root'
})
export class CoordinateService {

  readonly coord_API = ""

  constructor(private http : HttpClient) {  }

  getCoordinates(location : string) {
    return this.http.get(this.coord_API.replace("*", location)).pipe(
      tap(_ => console.log("recieved geoData")),
      catchError(err => {throw "GEO ERROR: " + err})
    )
  }
}

weather.service
@Injectable({
  providedIn: 'root'
})
export class WeatherService {
  readonly weather_api : string = "";
  coordinates : [] = [];
  // I need to pass in input from component to coordService
  constructor(public http : HttpClient, public coordinateService : CoordinateService) {  }

  getWeatherInfo(coordinates : Array<number>, type="daily") {
    return this.http.get(this.weather_api).pipe(
      tap(_ => console.log('got data')),
      catchError(err => {throw "WE.  ERR : " + err})
    );
  }
}

A:

Your component should aggregate the services and make the calls.  
constructor(
  public weatherService: WeatherService,
  public coordsService: CoordinateService,
) { }

weatherData() {
  this.coordsService.getCoordinates('your param').pipe(
    switchMap(coords => this.weatherService.getWeatherInfo(coords))
  ).subscribe(data => console.log(data));
}

Services are providers that can be injected to anything in Angular.  They should have a single purpose : the components should then be able to use them and combine them.  
switchMap is an RxJS operator.  
RxJS is a library widely used by Angular, that enables reactive programming.  When you make an HTTP call, you create an observer, that is created through the subscribe keyword.  That creates a stream, in which the data is immutable.  
RxJS allows you to use operators to manipulate the stream.  You have a lot of operators to choose from.  
In the case of switchMap : this is an operator that allows you to switch the stream for another one.  This means that first you request the coordinates, and then use switchMap to request the weather, with the result of the first http call.  
You have several operators for that, like mergeMap, flatMap ... But switchMap should always be the first choice, because it cancels any pending request if the observable is getting observed again.  That means the user will cancel the pending request if he clicks on the button several times in a row, resulting in fewer http calls. 